2
我想为C++ boost :: shared_ptr做深层拷贝。C++ boost深层拷贝:: shared_ptr
struct A{
boost::shared_ptr<const Data> dataPtr;
A(const A& aSource) {
dataPtr.reset(new const Data);
*dataPtr = *(aSource.dataPtr);
};
但是,我得到了错误: 错误:未初始化的常量“const的结构A的“新”
如果我不想放弃const的,如何处理?
任何帮助将不胜感激。
谢谢!
这样,dataPtr将指向一个非const数据,因为const_cast会的?谢谢 ! – 2013-02-13 16:12:36
'shared_ptr'的要点是避免深度复制。如果你想深度复制,你需要一个不同的指针类型。 (你也需要一个关于如何进行深层复制的约定,一个'Base *'实际上可以指向一个'派生',而'派生'必须被复制。 – 2013-02-13 16:32:58