, _retainCount = 0
, virtual .
. : (gcc 3.4.3)
#include<iostream>
using namespace std;
class A
{
public:
A(){cout<<"A ctor"<<endl;};
virtual ~A(){cout<<"A dtor"<<endl;};
void testDel()
{
delete this;
}
};
class B: public A
{
public:
B(){cout<<"B ctor"<<endl;};
~B(){cout<<"B dtor"<<endl;};
};
int main()
{
B bObj;
bObj.testDel();
return 0;
}
:
A ctor
B ctor
B dtor
A dtor
:
A ctor
B ctor
B dtor
A dtor
B dtor
A dtor