如何在c ++中创建包含在共享指针中的对象的重复实例?

use*_*848 1 c++ smart-pointers shared-ptr

我有一个对象,它同时定义了复制构造函数和赋值运算符.它包含在共享指针中.

我想创建另一个共享指针,其中包含原始共享指针的副本(即指向新内存位置的新共享指针,但是,它与原始对象具有相同的数据).

谢谢你的帮助.

Jam*_*lis 10

在创建新对象时调用复制构造函数:

std::shared_ptr<C> ptr1(new C());      // invokes the default constructor
std::shared_ptr<C> ptr2(new C(*ptr1)); // invokes the copy constructor
Run Code Online (Sandbox Code Playgroud)

在这种情况下,它确实没有什么不同,如果你有常规的,愚蠢的指针.