问题及代码:
#include <iostream>
using namespace std;
class BASE
{
private:
char c;
public:
BASE(char n):c(n) {}
virtual ~BASE() { cout<<c; }
};
class DERIVED:public BASE
{
private:
char c;
public:
DERIVED(char n):BASE(n+1),c(n) {}
~DERIVED(){ cout<<c; }
};
int main(){
DERIVED d('X');
return 0;
}
运行结果:
知识点总结:
虚析构函数,程序结束后先调用派生类的析构函数后调用基类的虚构函数,若无虚析构函数则无法实现