我正在嘗試複製自定義類的對象Event
。我有一個共同的指向,我已經從劃撥方式取得的對象:如何正確地複製給定其對象shared_ptr的對象
std::shared_ptr<Event> e = std::make_shared<Event>();
爲了獲得e
一個真正的副本(不只是指針的拷貝)我已經試過:
std::shared_ptr<Event> o = std::make_shared<Event>(*e);
但我不知道這是正確的做法,因爲它似乎是,如果我刪除e
也刪除o
...
順便說一句,我還沒有定義一個拷貝構造函數Event::Event(const Event &orig)
,但在我的理解這不是因爲編譯器提供了一個默認的拷貝構造函數。事件類只包含變量而沒有其他指針。
看來'e'也刪除了'o'?怎麼會這樣?您可以使用print語句添加析構函數以查看發生了什麼。 – pmr
您可以將日誌記錄到您的Event析構函數中。例如std :: cout。 – cbel