c++ boost smart pointer
文章平均质量分 81
炼气散人
等儿子高考后,或许会回来
展开
-
weak_ptr的构造函数
weak_ptr是用来解决shared_ptr的循环引用问题的。先看看如何构造weak_ptr:int main(int argc, char** argv) { shared_ptr p(new int(5)); weak_ptr q(p); weak_ptr x; weak_ptr y(new int(6));最后一个创建语句编译报错,因为w原创 2012-12-10 22:45:54 · 4771 阅读 · 0 评论 -
weak_ptr解除循环引用
先看一下shared_ptr的正确用法:class A {public: A() { cout << "A::A()" << endl; } ~A() { cout << "A::~A()" << endl; } shared_ptr b;};class B {public: B() {原创 2012-12-11 10:14:09 · 4398 阅读 · 0 评论 -
enable_share_from_this功能介绍
这个类很有意思,让一个被shared_ptr管理生命周期的类能够在自己的成员函数内部访问shared_ptr。有点绕。举个例子,下面的代码在函数f内部通过this构造了shared_ptr对象,然后打印x_的值。class B {public: B(): x_(4) { cout << "B::B()" << endl; } ~B() {原创 2012-12-11 15:07:35 · 8962 阅读 · 0 评论 -
boost::shared_ptr内部结构
本文是从过去自己的一篇博客中修改而来。因为年代久了,这篇博客的图片被CSDN升级搞丢了。所以现在重新绘制了结构图。老文位置:http://blog.csdn.net/sheismylife/article/details/1694939shared_ptr shared_ptr源自于著名的boost库,智能指针自从Scott Meyers在其作品>首次提出并给出一个示范版本后得到了很大的发展原创 2013-01-29 10:05:55 · 8033 阅读 · 0 评论 -
scoped_ptr
先看一个简单的例子:#include using namespace std;#include using namespace boost;class A {public: A() { cout << "A::A()" << endl; } ~A() { cout << "A::~A()" << endl; }原创 2012-12-10 15:19:26 · 3307 阅读 · 0 评论