===请教智能指针shared_ptr的用法问题?===

lz_0618 lz_0618 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
请问:下面代码中智能指针的定义spi是怎么回事情??
以前只用到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进行初始化时不能将一个普通指针直接赋值给智能指针,因为一

NEDL001

C++11 智能指针之shared_ptr代码详解

主要介绍了 C++11 智能指针之shared_ptr的相关知识,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

weixin_38704870

C++11新特性之智能指针(shared_ptr/unique_ptr/weak_ptr)

主要介绍了C++11新特性之智能指针,包括shared_ptr, unique_ptr和weak_ptr的基本使用,感兴趣的小伙伴们可以参考一下

weixin_38670949

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文件用于分析

ithiker

C++ unique_ptr weak_ptr shared_ptr auto_ptr智能指针.doc

四种智能指针的使用、机制和缺陷分析

大酷茬子
评论 6
收藏 已收藏
分享
返回顶部
lz_0618
C++ 语言 65,214 成员 250,514 内容