【发布时间】:2016-12-08 18:06:37
【问题描述】:
我对@987654324@ 感到困惑。
我的目标是将基类的unique_ptr 转换为派生类的unique_ptr。
所以我找到了这个question 答案是
Derived *tmp = dynamic_cast<Derived*>(basePointer.get());
std::unique_ptr<Derived> derivedPointer;
if(tmp != nullptr)
{
basePointer.release();
derivedPointer.reset(tmp);
}
或
std::unique_ptr<Derived>
derivedPointer(static_cast<Derived*>(basePointer.release()));
然后我想知道basePointer.release(); 之后的基指针会发生什么。
基于这个question,我知道它会导致内存泄漏。
我说的对吗?
【问题讨论】:
标签: c++