{
이번 항목은 좀 역발상으로 이야기를 쫒아 본다.
기반 클래스의 디스트럭터가 public 과 virtual 이라면, 파생 클래스에게 어떠한 영향을 미치는가?
1. 객체 생성이 자유롭다.
2. 객체의 완전한 소멸이 기반 객체의 포인터로도 가능하다.
그렇다면, protected 와 non-virtual 이라면?
1. 객체 생성이 friend나 상속 기반에서만 이루어 진다.
2. 객체의 완전한 소멸은 항상, 파생 클래스에서만 가능하다.
이 두가지 방식을 따라야 하는 이유는 무엇인가?
메모리가 누수될 가능성이 무척 커진다.
이해 못하겠다. 예제를 보여 달라.
경험해 본 적이 있는가?
2008년 6월경 쯤일 것이다. 가상이란 개념이 없는 상태에서 상속을 쓰다가 메모리 누수가 되는 것을 발견했다. 이 때 Effective C++ 을 읽고 있었는데, 딱 마음에 와 닿더라.
}
최근댓글