shared_ptrshared_ptr是一种智能指针,他的作用如同指针,但会记录有多少shared_ptr指向同一个对象。使用时必须引用头文件<boost/shared_ptr.hpp>template<classT>
classShartedPtr
{
public:
//构造函数
ShartedPtr(T*ptr)
:_ptr(ptr)
,_pCount(newint(1))
{..
分类:
其他好文 时间:
2016-04-05 02:21:14
阅读次数:
685
首先了解shared_ptr毫无疑问的是智能指针的一种,智能指针是为了解决在大型代码里无法不好控制指针的问题,例如:在类里面如果出现了动态开辟出来的空间,有一个指针指向这块空间,如果在相应的作用范围之内没有将其delete掉会造成内存的泄漏,所以这样就必须手动的对这一块空..
分类:
其他好文 时间:
2016-04-04 21:16:42
阅读次数:
332
方案一:因为在类中对同一块空间的析构在一次以上,就会发生错误,所以在进行赋值和拷贝构造时(同一块空间有一个以上的指针指向),保证只有一个指针指向这块空间,对原指针赋空操作,这样在析构时一块空间只会被析构一次classAutoPtr
{
public:
//构造函数
AutoPtr(T*ptr)
..
分类:
其他好文 时间:
2016-04-04 21:08:19
阅读次数:
155
一开始学C++的时候老师推荐的就是Dev C++这个IDE,用起来感觉还不错,使用起来比较简单,而且属于比较轻量级的,不怎么占用内存;缺点可能就是调试功能没有项VS那种大型IDE齐全和好用,不过对于一个新手来说绝对足够了。 最近在一些工程中需要用到智能指针的库,比如说auto_ptr以及boost里 ...
分类:
编程语言 时间:
2016-04-04 14:46:31
阅读次数:
143
//第四个功能好像用到CTYPE吧 自己好像很麻烦 以后要用再说吧、 #include<stdio.h>#include<string.h>void direct_output(char **ptr){ int i; for(i=0;i<10;i++) puts(ptr[i]);}void asc_ ...
分类:
其他好文 时间:
2016-04-02 00:45:22
阅读次数:
192
一.统一的初始化方法 二.成员变量默认初始值 三.auto关键字用于定义变量,编译器可以自动判断变量的类型 四.decltype 关键字求表达式的类型 五.智能指针shared_ptr? 头文件: <memory>? 通过shared_ptr的构造函数,可以让shared_ptr对象托管一个new运 ...
分类:
编程语言 时间:
2016-04-01 20:14:47
阅读次数:
273
realloc,malloc,calloc的区别三个函数的申明分别是:void*realloc(void*ptr,size_tsize);void*malloc(size_tsize);void*calloc(size_tnum,size_tsize);它们的返回值都是请求系统分配的地址,如果请求失败就返回NULLmalloc用于申请一段新的地址,参数size为需要内存空间的长度,如:c..
分类:
其他好文 时间:
2016-04-01 06:45:39
阅读次数:
159
1.智能指针template<classT>
classAutoPtr
{
public:
AutoPtr(T*ptr)
:_ptr(ptr)
{
}
~AutoPtr()
{
if(_ptr!=NULL)
{
cout<<"delete"<<_ptr<<endl;
delete_ptr;
_ptr=NULL;
}
}
AutoPtr(AutoPtr<T>&ap)
:_ptr(ap._ptr)
{
ap._ptr=NULL;//管..
分类:
其他好文 时间:
2016-04-01 06:43:53
阅读次数:
124
//智能指针可以自动销毁,用引用计数技术实现
#include<iostream>
usingnamespacestd;
template<classT>
classSmartPtr
{
protected:
T*_ptr;
size_t*_cout;
voidclear()
{
if(--*_cout==0)
{
delete_ptr;
delete_cout;
}
}
public:
SmartPtr(T*ptr=0)
:_ptr(pt..
分类:
其他好文 时间:
2016-03-31 19:02:34
阅读次数:
167
智能指针:动态的管理开辟的内存,防止人为的内存泄漏。
SharedPtr的实现:
原理:使用引用计数的原理使多个对象可以指向一块空间。
#define_CRT_SECURE_NO_WARNINGS
#include<iostream>
usingnamespacestd;
template<classT>
classSharedPtr
{
public:
SharedPt..
分类:
其他好文 时间:
2016-03-30 19:47:06
阅读次数:
167