析构函数如果不是虚的话,基类的析构函数将不会被调用。
多态时,也就是派生类被基类指针所指,或者被基类别名:虚析构函数,被调用时,其自身的析构函数和基类的析构函数都将会被调用。非虚的时候,不进行多态,只有基类的会被调用。
纯虚析构函数:定义的时候除了加“=0”。还需要给出函数的实现。因为当递归的调用析构函数时需要自动执行。
作为一个准则,任何时候我们的类中都要有一个虚函数,我们应当立即增加一个虚构函数(即使他什么也不做)。这样,我们保证在后面不会出现问题。
需要注意的是析构函数中不支持虚机制,也就是说,在析构函数中,只调用本地版的函数,因为外层派生类很有可能已经被析构了。析构函数顺序:派生-》基类。构造函数顺序:基类-》派生。