C++构造函数、析构函数、虚析构函数

  一般地,建立对象和删除对象时,父类构造函数->子类构造函数->……->子类析构函数->父类析构函数。

  特例:如果用new建立了一个对象,并将父类的指针指向这个子类的对象,那么用delete撤销对象时,系统只执行基类的析构函数,而不执行派生类的析构函数。

如果希望按照子类析构函数->父类析构函数的顺序执行,那么应该将基类的析构函数声明为virtual(建议这么做)。如果基类的虚构函数为virtual,那么该基类的所有派生类的析构函数也自动称为虚函数。

  注意:构造函数不能声明为virtual

原文地址:https://www.cnblogs.com/seven7seven/p/3623137.html