相关疑难解决方法(0)

从unique_ptr到数组的shared_ptr

Scott Meyers在他的书" Effective Modern C++"中提到,shared_ptr不鼓励使用数组,因为当转换为Base类指针时,它会在类型系统中创建"漏洞".

但是,它可以创建shared_ptr<T>unique_ptr<T[]>下列方式

std::shared_ptr<D> pDerived = std::shared_ptr<D>(std::make_unique<D[]>(3)); // Create an array of 3 D's
Run Code Online (Sandbox Code Playgroud)

以上代码是否有潜在危险?如果pDerived以后被复制到一个存在陷阱pBase吗?

std::shared_ptr<B> pBase = pDerived; // B is the base class for D
Run Code Online (Sandbox Code Playgroud)

c++ c++11

2
推荐指数
1
解决办法
219
查看次数

标签 统计

c++ ×1

c++11 ×1