/** * @file interesting_facts5.cpp * @brief 构造函数不能是虚函数,而析构函数可以是虚析构函数。 * 例如:当基类指针指向派生类对象并删除对象时,我们可能希望调用适当的析构函数。如果析构函数不是虚拟的,则只能调用基类析构函数。 * @author 光城 * @version v1 * @date 2019-07-20 */ #include using namespace std; class Base { public: Base() { cout << "Constructor: Base" << endl; } virtual ~Base() { cout << "Destructor : Base" << endl; } }; class Derived: public Base { public: Derived() { cout << "Constructor: Derived" << endl; } ~Derived() { cout << "Destructor : Derived" << endl; } }; int main() { Base *Var = new Derived(); delete Var; return 0; }