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等容器种时,默认使用的比较操作 < 比较的是指针值。如果需要比较引用的<,需要自定义比较子函数对象。
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等容器种时,默认使用的比较操作 < 比较的是指针值。如果需要比较引用的<,需要自定义比较子函数对象。
相关文章推荐
- C++11智能指针(五):shared_ptr的循环引用的问题及weak_ptr
- c++11 智能指针 unique_ptr、shared_ptr与weak_ptr
- C++11新特性之智能指针(shared_ptr/unique_ptr/weak_ptr)
- weak_ptr和shared_ptr,以及什么时候用weak_ptr
- std::shared_ptr 和 std::weak_ptr的用法以及引用计数的循环引用问题
- C++11 智能指针std::shared_ptr/std::unique_ptr/std::weak_ptr
- std::shared_ptr 和 std::weak_ptr的用法以及引用计数的循环引用问题
- std::shared_ptr 和 std::weak_ptr的用法以及引用计数的循环引用问题
- C++11智能指针之shared_ptr、weak_ptr
- C++11新特性之智能指针(shared_ptr/unique_ptr/weak_ptr)
- stl中auto_ptr,unique_ptr,shared_ptr,weak_ptr四种智能指针使用总结
- C++11新特性之智能指针(shared_ptr/unique_ptr/weak_ptr)
- shared_ptr & unique_ptr & weak_ptr (C++11)
- C++11 Intro - C++11智能指针之shared_ptr、weak_ptr
- std::shared_ptr 和 std::weak_ptr的用法以及引用计数的循环引用问题
- std::shared_ptr 和 std::weak_ptr的用法以及引用计数的循环引用问题
- Linux多线程服务器编程shared_ptr以及weak_ptr实现的弱回调以及对象池管理
- 关于boost的shared_ptr以及weak_ptr的研究
- stl中auto_ptr,unique_ptr,shared_ptr,weak_ptr四种智能指针使用总结
- 浅析Boost智能指针:scoped_ptr shared_ptr weak_ptr