2014-02-16 124 views
0

我正在創建一個具有以下屬性的棧,我試圖創建一個複製構造函數和一個賦值運算符,但我不能自從新對象和舊指向相同記憶。請協助。C++複製構造函數和賦值運算符

class Node 
{ 
public: 
    Node(const T& data, Node* n = 0) 
    { 
     element = data; 
     next = n; 
    } 

    T element; 
    Node* next; 
}; 

/* The top of the stack */ 
Node* top; 
+0

檢查「[什麼是複製和交換成語?](http://stackoverflow.com/questions/3279543/what-is- 「 – Drop

回答

0

對於拷貝構造函數做這樣

Node(const Node& data) 
{ 
    element = data.element; 
    next=new Node(); 
    *next = *data.next; 
} 
+0

」賦值運算符將與Hamza的複製構造函數代碼非常相似...... –

+0

非常規安全:如果'new'或'Node()'拋出時發生爆炸 – Drop

+0

謝謝大家,我的問題是在main.cpp中,我想說的是Stack * newStack = new Stack (* oldStack); – Thabang

相關問題