一、派生类指针指向父类时父类的虚构函数必须设置为虚函数
看下面的代码,其中基类的析构函数并没有设置为虚函数
class Data
{
public:
Data(int data)
{
a = data;
cout << "Data构造" << endl;
}
~Data()
{
cout << "~Data析构" << endl;
}
private:
int a;
};
class Base
{
public:
Base()
{
cout << "Base构造" << endl;
}
~Base()
{
cout << "~Base析构" << endl;
}
};
class Derived : public Base
{
public:
Derived(int data):m_data(data)
{
cout << "Derived构造" << endl;
}
~Derived()
{
cout << "~Derived析构" << endl;
}
private:
Data m_data;
};
int main()
{
Base *p = new Derived(10);
delete p;
system("pause");
ret