我試圖讓一個指針調用創建時的複製構造函數,但保持引用該對象而不是它似乎。那麼我所做的完全錯了。使用堆指針複製構造函數
Queue<int> * a = new Queue<int>();
Queue<int> * b = a;
這一直保持引用而不是使用複製構造函數,該函數在堆棧分配的對象上工作正常。
我試圖讓一個指針調用創建時的複製構造函數,但保持引用該對象而不是它似乎。那麼我所做的完全錯了。使用堆指針複製構造函數
Queue<int> * a = new Queue<int>();
Queue<int> * b = a;
這一直保持引用而不是使用複製構造函數,該函數在堆棧分配的對象上工作正常。
你不能通過像這樣的指針調用拷貝構造函數。
要叫你需要更明確的拷貝構造函數:
Queue<int>* b = new Queue<int>(*a);
謝謝你,我的C++已經變得有點生疏,我不記得該怎麼做。 – Crossman 2013-02-24 19:56:18
不客氣。如果它幫助你,請不要忘記標記爲正確的答案。 :) – 2013-02-24 20:00:10
記住,C++是不是Java,你不需要使用堆中分配的對象所有的時間。你應該更喜歡具有自動生命期的對象(在堆棧上分配)。 – pmr 2013-02-24 20:00:53