登录社区云,与社区用户共同成长
邀请您加入社区
考虑一个经典的父子节点例子:一个`TreeNode`对象持有其子节点的`shared_ptr`列表,同时每个子节点又持有指向其父节点的`shared_ptr`。在类的成员函数中,如果需要将当前对象(`this`指针)封装为一个智能指针(例如,用于回调函数),直接使用`shared_ptr(this)`是极其危险的。这会创建一个新的、独立的`shared_ptr`控制块,与可能已经存在的、管理该对象