===请教智能指针shared_ptr的用法问题?===
以前只用到std::tr1::shared_ptr<char> v(strdup(pcParaValue));之类的定义,没有遇到两个参数的!!
template<typename T>
class CNotifyI // 清理者类,给shared_ptr用于自动释放占用的资源
{
public:
CNotifyI() : pt_(NULL) {}
CNotifyI(T * pt) : pt_(pt) {}
void setRef(T * pt) {
pt_ = pt;
}
void operator()(int * pi) {
if (pt_ != NULL && pi != NULL && *pi >= 0)
pt_->notify(pi);
}
private:
T * pt_;
};
CNotifyI<CTrunk> dltr_;
int i;
...
std::tr1::shared_ptr<int> spi(&i, dltr_);相关推荐
【C++ 深入浅出】智能指针shared_ptr、unique_ptr、weak_ptr详解
xx智能指针:防止用户忘记释放掉指针所指的堆空间而造成内存泄漏 当一个对象应该被释放时,指向它的智能指针可以确保自动地释放它 智能指针主要用于管理在堆上分配的内存,它将普通的指针封装为一个栈对象。当栈对象的生存周期结束后,会在析构函数中释放掉申请的内存,从而防止内存泄漏。C++ 11中最常用的智能指针类型为shared_ptr,它采用引用计数的方法,记录当前内存资源被多少个智能指针引用。该引用计数的内存在堆上分配。当新增一个时引用计数加1,当过期时引用计数减一。只有引用计数为0时,智能指针才会自动释放引用的内存资源。对shared_ptr进行初始化时不能将一个普通指针直接赋值给智能指针,因为一
C++11 智能指针之shared_ptr代码详解
主要介绍了 C++11 智能指针之shared_ptr的相关知识,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
C++11新特性之智能指针(shared_ptr/unique_ptr/weak_ptr)
主要介绍了C++11新特性之智能指针,包括shared_ptr, unique_ptr和weak_ptr的基本使用,感兴趣的小伙伴们可以参考一下
C++ 智能指针(shared_ptr/weak_ptr)源码
C++ 智能指针(shared_ptr/weak_ptr)源码 源码位置:gcc-6.1.0\gcc-6.1.0\libstdc++-v3\include\tr1 这里只单列shared_ptr.h文件用于分析
C++ unique_ptr weak_ptr shared_ptr auto_ptr智能指针.doc
四种智能指针的使用、机制和缺陷分析


