您的位置:首页 > 其它

Shared_ptr 相互引用问题

2014-05-30 23:47 253 查看
class parent
{
public:
~parent() { std::cout <<"destroying parent\n"; }

public:
children_ptr children;
};

class children
{
public:
~children() { std::cout <<"destroying children\n"; }

public:
parent_ptr parent;
};

void test()
{
parent_ptr father(new parent());
children_ptr son(new children);

father->children = son;
son->parent = father;
}


在函数 test() 中,father->children = son, 使得 father 的计数器加至 2, son 同理,以至于析构 father(或son)时,仅仅是计数器减一,指针指向的资源并没有被析构。

参考

[1] http://blog.csdn.net/liuzhi1218/article/details/6993135
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: