【发布时间】:2012-09-07 15:38:00
【问题描述】:
我正在与std::shared_ptr 合作,在我的软件开发过程中,我遇到了几个
让我怀疑内存管理的案例。我有一个第三方图书馆
总是给我来自函数的原始指针,在我的代码中我正在转换它们
进入std::shared_ptr(来自std而不是来自boost。顺便说一句,两者有什么区别
他们俩?)。所以假设我有以下代码:
ClassA* raw = new ClassA;
std::shared_ptr<ClassA> shared(raw);
当共享指针超出范围时会发生什么(假设它是在函数中本地声明的
现在我正在退出该功能)。 ClassA 对象是否仍然存在,因为原始指针
是指向它吗?
【问题讨论】: