虚析构函数 — 计算机填空题
题目
在 C++ 中,基类 Base 的析构函数未声明为 virtual,派生类 Derived 的析构函数中包含释放堆内存的语句。程序中执行语句 Base *p = new Derived; 后调用 delete p;,此时通过基类指针删除派生类对象,由于析构函数不是虚函数,实际只会执行____类的析构函数,导致派生类中申请的资源未被释放。为使 delete 通过基类指针时能正确调用派生类析构函数,应在基类析构函数声明前加上关键字____。因此,当一个类作为多态基类使用时,其析构函数应当声明为____。