可以自由传递指标的 std::shared_ptr 比传统指标要安全许多
但即使如此也还是有cyclic reference的问题存在
网络上查到的解法几乎都用 weak_ptr 来处理
但是我怎么看都不觉得这算解法
因为它无法阻止物件被释放
之所以要使用 std::shared_ptr 就是希望抓着指标就一定能使用所指的物件
我自己目前的做法是对物件分层级
只有高层物件可以拥有指标指向下层物件
确保不会连成一圈
这方式我还没看到明显的问题
但是这种自我约束的行为还是很不可靠
一个不小心包成std::function之类的东西然后乱丢可能就发生
而且一旦出现cyclic也很难查觉
因为它就只是安静的咬著内存不放
不知道有没有更理想的处理方式?
或者有比 shared_ptr 更好的工具也可以介绍一下