보통 Node에 대한 class를 따로 잡고, LinkedList에대한 클래스를 따로 잡고


LinkedList안에 Node를 포함시켜서 짰거든요.


그래서 insert, search, delete 모두 LinkedList의 멤버함수로 하고.


그리고, 소멸자는 ~LinkedList를 이용해서 Node에 대한 메모리를 다 날려버렸고.



그런데 말이죠, Node의 소멸자 수준에서 하면 안되나염?


즉, ~LinkedList를 이용하는 것은 아래와 같은 느낌으로 노드를 날려버리고(head는 LinkedList 의 멤버 변수로 가지고 있는 노드를 의미합니당)

1
2
3
4
5
6
7
8
9
10
11
12
~LinkedList()
{
    node* l, *p;
    l = head;
 
    while( l != NULL)
    {
        p = l;
        l = l->n;
        delete p;
    }
}
cs


이런 느낌이라면, 제가 갑자기 든 생각은 아래처럼 하고, 나머진 node class에 맡기느 거죠.


1
2
3
4
~LinkedList()
{
    delete head;
}
cs