虚析构函数

若子类继承基类,两者析构函数不加virtual关键字,此时调用函数 参数为基类指针指向子类对象 删除对象,那么只会执行基类构造函数,此时对于编译器而言,你传进去的基类指针,在函数体已经静态编译好为基类的构造函数。

如果在基类的析构函数前加上virtual关键字,此时对于子类的析构函数,也会自动加上virtual关键字,从而加入到虚函数表中,再调用上面的函数,会首先寻找调用子类的析构函数,此时在子类的析构函数最后面,编译器会自动执行基类的析构函数

Contents