나는 다음과 같은 코드를 가지고 :필드의 수퍼 클래스 호출 소멸자를 삭제합니까?
template<class T>
class List<T> {
class Node{
T data;
Node * next;
...
};
Node * head;
...
~List() {/*iterating through all nodes and deleting them*/}
...
};
template<class T>
class Tree<T> {
class Node {
Node * next;
...
T key;
List<int> internal_list;
};
destroy_node(Node * x) { delete x; }
};
이 destroy_node(Node * x)
호출 List<T>
클래스의 소멸자를합니까 아니면 명시 적으로 호출해야합니까?
중첩 된 클래스로 두 번 노드가 있기 때문에 약간 혼란 스럽습니다. 트리 삭제 :: Node는 Tree :: Node :: internal_list의 소멸자를 호출합니다. –