07:为多态基类声明virtual析构函数
当派生类对象经由一个基类指针被删除,而该基类带着一个非虚析构函数,其结果未有定义。因为实际执行时,通常对象的派生类成分没被销毁。
解决办法:给基类一个虚析构函数。
如果一个类不含虚函数,通常表示它并不想被用作一个基类,此时令其析构函数为virtual
是一个馊主意。
polymorphic
(多态性质的)base classes
应该声明一个virtual
析构函数。如果class
带有任何virtual
函数,它就应该拥有一个virtual
析构函数。classes
设计的目的不是base class
,或不是为了具备多态性,就不该声明virtual
析构函数。