注意:#include <iostream.h>
class Base
{
public:
Base(){cout<<"Base Constructor!"<<endl;}
~Base(){cout<<"Base Destructor!"<<endl;}
};
class Derived: public Base
{
public:
Derived(){cout<<"Derived Constructor!"<<endl;};
~Derived(){cout<<"Derived Destructor!"<<endl;};
};
void main()
{
Derived *pb;
pb = new Derived;
delete pb;
}
结果:
Base Constructor!
Derived Constructor!
Derived Destructor!
Base Destructor!
#include <iostream.h>
class Base
{
public:
Base(){cout<<"Base Constructor!"<<endl;}
~Base(){cout<<"Base Destructor!"<<endl;}
};
class Derived: public Base
{
public:
Derived(){cout<<"Derived Constructor!"<<endl;};
~Derived(){cout<<"Derived Destructor!"<<endl;};
};
void main()
{
Base *pb;
pb = new Derived;
delete pb;
}
结果:
Base Constructor!
Derived Constructor!
Base Destructor!
如果基类的析构函数为virtual ~Base,则结果为
Base Constructor!
Derived Constructor!
Derived Destructor!
Base Destructor!