Node*Clone(){
numClones++;
Node*cloned=new Node(*this);
return cloned;
}
我有一個默認的構造函數(沒有參數)和我沒有宣佈的拷貝構造函數,所以我希望這個簡單的全部內容複製的*this
的內存,並返回一個指向它。什麼是正確的方式來返回自己在你自己的副本?
不過,我得到錯誤的new
線之上:
Call to implicitly deleted copy constructor
兩個可能的問題,但我不認爲他們應該影響這樣的:
this
有unique_ptr
連着到它。這是它包含一個unique_ptr的容器,它本身存儲在另一個unique_ptr容器中。但我不移動那個指針,我正在創建new
對象沒有附加到先前的對象,對吧?this
實際上是Node
一個子類,但我想一個指針,我真的建議你實現一個拷貝構造函數返回一個基類
unique_ptr不能被複制構造,因此不生成Node類的拷貝,你必須手寫一個。查看Node類的定義會很有用。你有沒有試過「新的<此類型>(* this)」? – Akanksh
你的意思是「附在它上面?」它是否保存在'unique_ptr'中,或者該類是否具有'unique_ptr'成員?後者防止產生隱式拷貝,因爲'unique_ptr'是不可複製的。 – Angew
@Akanksh:你是怎麼知道「這有一個unique_ptr連接到它」的意思? –