#include <iostream>
using namespace std;
class a
{
public:
a() { cout << "a!" << endl;}
void disp() { cout << "a::disp()!" << endl; }
virtual ~a() { cout << "~a!" << endl;}
};
class b : public a
{
public:
b() { cout << "b!" << endl; }
~b() { cout << "~b!" << endl; }
};
class c: public b
{
public:
c() { cout << "c!" << endl; }
void disp() { cout << "c::disp()!" << endl; }
~c() { cout << "~c" << endl; }
};
int main()
{
a *p = new c();
p->disp();
delete p;
return 0;
}
问:
1. 写出输出结果
2.若类a中的void disp()没有关键字,输出为什么?
3. 若类a中的析构函数前没有virtual关键字,输出为什么?