2013-02-24 41 views
1

我試圖讓一個指針調用創建時的複製構造函數,但保持引用該對象而不是它似乎。那麼我所做的完全錯了。使用堆指針複製構造函數

Queue<int> * a = new Queue<int>(); 
Queue<int> * b = a; 

這一直保持引用而不是使用複製構造函數,該函數在堆棧分配的對象上工作正常。

+2

記住,C++是不是Java,你不需要使用堆中分配的對象所有的時間。你應該更喜歡具有自動生命期的對象(在堆棧上分配)。 – pmr 2013-02-24 20:00:53

回答

7

你不能通過像這樣的指針調用拷貝構造函數。

要叫你需要更明確的拷貝構造函數:

Queue<int>* b = new Queue<int>(*a); 
+0

謝謝你,我的C++已經變得有點生疏,我不記得該怎麼做。 – Crossman 2013-02-24 19:56:18

+0

不客氣。如果它幫助你,請不要忘記標記爲正確的答案。 :) – 2013-02-24 20:00:10