다형성을 가진 기본 클래스에는 반드시 가상 소멸자를 선언해야 한다. 어떤 클래스가 가상 함수를 하나라도 갖고 있으면 이 클래스의 소멸자도 가상 소멸자이어야 한다. 기본 클래스로 설계되지 않았거나 다형성을 갖도록 설계되지 않은 클래스에는 가상 소멸자를 선언하지 말아야 한다. 다형성과 가상 소멸자 다형성을 갖는 클래스를 사용하는 상황을 가정해 보자. 시간 기록을 유지하는 클래스를 제작할 것인데 기본 클래스를 만들고 용도에 따라 파생시키는 구조를 설계한 상황이다. class TimeKeeper { public: TimeKeeper(); ~TimeKeeper(); ... }; class AtomicClocK: public TimeKeeper { ... }; class WaterClocK: public TimeK..