【发布时间】:2015-09-02 20:51:50
【问题描述】:
据我所知,shared_ptr 的使用通常不鼓励使用,因为不小心使用它们会导致潜在的错误(除非你对显着的好处和仔细检查的设计有很好的解释)。
另一方面,Python 对象似乎本质上是 shared_ptrs(ref_count 和垃圾回收)。
我想知道是什么让它们在 Python 中运行良好,但在 C++ 中却存在潜在危险。换句话说,Python 和 C++ 在处理 shared_ptr 方面有什么区别,在 C++ 中不鼓励使用它们,但在 Python 中不会引起类似问题?
我知道例如Python 会自动检测对象之间的循环,从而防止在 C++ 中悬挂循环 shared_ptrs 可能导致的内存泄漏。
【问题讨论】:
标签: python c++ programming-languages shared-ptr