我们知道,用C++开发的时候,用来做基类的类的析构函数一般都是虚函数。可是,为什么要这样做呢?下面用一个小例子来说明:
有下面的两个类:
class
ClxBase
{
public :
ClxBase() {};
virtual
~
ClxBase() {};
virtual
void
DoSomething() { cout
<<
"
Do something in class ClxBase!
"
<<
endl; };
};
class ClxDerived :
public
ClxBase
{
public :
ClxDerived() {};
~
ClxDerived() { cout
<<
"
Output from the destructor of class ClxDerived!
"
<<
endl; };
void
DoSomething() { cout
<<
"
Do something in class ClxDerived!
"
<<
endl; };
};
{
public :
};
class
{
public :
};
ClxBase
*
pTest
=
new
ClxDerived;
pTest -> DoSomething();
delete pTest;
pTest -> DoSomething();
delete
Do something in class ClxDerived!
Output from the destructor of class ClxDerived!
Output from the destructor of class ClxDerived!
Do something in class ClxDerived!