派生类的析构函数先后问题
走好每一步 2008-10-13 02:11:17 #include <iostream>
using namespace std;
class CA{
public:
CA() { cout << "A's constructed.\n"; }
void fun() { cout << "I am A\n"; }
~CA() {cout << "A's destructed.\n"; }
};
class CB:public CA{
public:
CB() { cout << "B's constructed.\n"; }
void fun() { cout << "I am B\n"; }
~CB() {cout << "B's destructed.\n"; }
};
int main(){
CA * p_a;
p_a = new CB;
delete p_a;
return 0;
}
结果:
A's constructed.
B's constructed.
A's destructed.
不明白,为什么只有A被析构,B呢