블로그 이미지
.
속눈썹맨

공지사항

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

글 보관함

calendar

1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

C++ 상속과 생성자, 소멸자 호출

2005. 5. 25. 13:49 | Posted by 속눈썹맨
Base -> Derived로 상속했을 때.

Derived class를 만들면
생성자는 항상 Base(), Derived() 순으로 호출된다.

Derived class를 Derived pointer에 넣고 delete하면
소멸자는 ~Derived()가 호출되고 ~Base()가 호출된다.

Derived class를 Base pointer에 넣고 delete하면
소멸자는 ~Derived()가 호출되고 ~Base()가 virtual이면 호출되고 virtual이 아니면 Undefined이다.

@ class를 상속할 생각이라면 소멸자는 virtual로 만들자.

참고)
Effective C++, Item 14:  Make sure base classes have virtual destructors.