#include <memory>
#include <string>
#include <iostream>
using namespace std;
int main()
{
shared_ptr<string> p = make_shared<string>("a");
cout << "p use_count:" << p.use_count() << endl;
string *p1 = p.get();
cout << "*p:" << *p << ",*p1:" << *p1 << endl;
cout << "p use_count:" << p.use_count() << endl;
auto p2 = p;
cout << "p use_count:" << p.use_count() << endl;
shared_ptr<string> p3(p);
cout << "p use_count:" << p.use_count() << endl;
shared_ptr<string> p4 = make_shared<string>("b");
p3 = p4;
cout << "p use_count:" << p.use_count() << endl;
p2.~shared_ptr();//...
cout << "p use_count:" << p.use_count() << endl;
if(p.unique()){
cout << "p is unique";
}
}
p use_count:1
*p:a,*p1:a
p use_count:1
p use_count:2
p use_count:3
p use_count:2
p use_count:1
p is unique
shared_ptr(new)
原创xiangjie256 ©著作权
©著作权归作者所有:来自51CTO博客作者xiangjie256的原创作品,请联系作者获取转载授权,否则将追究法律责任
下一篇:qt webkit
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
new thread 、 new stack和New Object的形象说明
e2 studio的使用
堆栈 Stack 网络协议栈 -
简单实现shared_ptr
引言
#include 智能指针 基本操作 -
shared_ptr简单实现
实现一个简单的shared_ptr翻看以前的代码的时候发现一个shared_ptr的简单实现。我记得是网上
简单实现 #ifndef #define -
实现简单的shared_ptr
类图如下:shared_ptr和weak_ptr都有一个基类Ptr_base,Ptr_base有指操作。
c++ 开发语言 引用计数 拷贝构造 构造函数 -
shared_ptr weak_ptr
shared_ptr与weak_ptr智能指针均是C++ RAII的一种应用,可用
引用计数 线程安全 操作符 数组 自定义 -
shared_ptr智能指针
注意:shared_ptr作为参数【函数参数、线程参数】时,不管是不是引用传递,都是拷贝复制,所以它们的计数器是同一个,所以计数+1
#include #define #if 应用程序 html