2014-04-13 2 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에 동적으로 메모리를 할당합니까? 그렇다면 소멸자에서 할당을 해제해야합니다. 그렇지 않으면 노드의 용기가 범위를 벗어나면 지워집니다. List의 Node 객체에서도 마찬가지입니다. 동적으로 할당 된 경우에는 List의 소멸자에서 해당 객체를 파괴해야합니다. – 101010

답변

1

정말 당신이 당신의 연결리스트의 노드를 만드는 방법에 따라 달라집니다. 만약 당신이 "새로운", 그럼 당신은 메모리를 무료로 "삭제"를 호출해야합니다. 클래스 정의에서 생성자에 아무것도 할당하지 않은 것처럼 보입니다. 생성자에서 메모리를 할당하면 소멸자에서 할당을 해제해야합니다.