2014-04-13 39 views
-1

我在我的鏈表中有一個Node類和List類。我需要在我的Node類中使用析構函數,還是應該使用List類中的析構函數刪除所有節點?鏈表節點的析構函數

這裏是我的.h至今:

class Node 
{ 

public: 

    int value; 
    Node* next; 
    Node(); 
    Node(int); 
}; 

class List 
{ 

private: 

    Node* head; 

public: 

    List(); 
    List(List &a); 
    ~List(); 
    //additional functions (insert, delete, etc) 
}; 
+0

您的代碼將會有幫助... – ajmartin

+0

您是否動態分配節點中的任何內存?如果是,你應該在它的析構函數中取消它的分配。否則當Node超出範圍時,Node的內容將被清除。對於List中的Node對象也是如此,如果它們是動態分配的,那麼你應該在List的析構函數中銷燬它們。 – 101010

回答

1

這真的取決於你如何建立你的鏈接列表節點。如果你「新」了,那麼你必須調用「刪除」來釋放內存。從你的類定義看來,你沒有在你的構造函數中分配任何東西。如果在你的構造函數中分配任何內存,那麼你必須在析構函數中釋放它。