您的位置:首页 > 编程语言 > C语言/C++

C++11 shared_ptr, weak_ptr速成,以及放在stl集合类里面的注意点。

2013-11-14 15:12 387 查看
shared_ptr的初始化

shared_ptr<int> a(new int(6));

shared_ptr的操作

shared_ptr<A> a = A::create();

a.get(); 得到 A*

a.reset(); 不再引用A*

shared_ptr<A> aa = A::create();

bool aaa = a < aa;

b = a;

b.expired(); ==>引用的对象是否已经无效了

b.lock(); ==> 得到shared_ptr<A>

b.reset(); ==>不再引用A*

enable_shared_from_this<A>是一个模板类。它的方法 shared_from_this() 可以获得 shared_ptr<A>指针。必须先有其他活着的shared_ptr<A>实例才能调用shared_from_this

shared_ptr<A>直接用在std::set等容器种时,默认使用的比较操作 < 比较的是指针值。如果需要比较引用的<,需要自定义比较子函数对象。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: