全文如下:
Destructor should be virtual according to MSJ article in Sept 1992
"Do More with Less Code:..."哪位能够找到该文全文?谢谢!
Destructor should be virtual according to MSJ article in Sept 1992
"Do More with Less Code:..."哪位能够找到该文全文?谢谢!
例如:
class A
{
char* m_c;
A(){ m_c = new char[10];}
virtual ~A(){ delete[] m_c;}
}class AA : public A
{
char* m_c1;
AA(){ m_c1 = new char[20];}
virtual ~AA(){ A::~A(); delete[] m_c1}
}
struct A
{
int *q;
A() { q = new int ;}
virtual ~A() {printf("~A\n");}
virtual func() {printf("A::func()\n");}
};
struct B : public A
{
int *p;
B() { p = new int ; }
virtual ~B() { printf("~B\n"); delete p; }
virtual func() {printf("B::func()\n");}
} ;
int main()
{
A *pA = new B ;
delete pA ;//先调用~B(),再调用~A()
}
可能是thinking in c++里面的吧