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