读书人

子类对象包孕的基类数据是在子类中析构

发布时间: 2012-09-08 10:48:07 作者: rapoo

子类对象包含的基类数据是在子类中析构还是基类

C/C++ code
#include <iostream>using namespace std;class A{public:    A():i(1){cout<<i<<endl;}    ~A(){cout<<"A"<<endl;}    int i;};class B : public A{public:    B():A(){}    ~B(){cout<<"B"<<endl;}};int main(){    B b;}


大家好,B中包含了A中的i变量,对象析构时,B中的i变量是在~B中清理还是在~A中清理
在~A中理由:构造函数就是调用基类构造函数赋值,所以析构也是
在~B中理由:继承A,i就是B的了

[解决办法]
应该是~A
[解决办法]
当B析构的时候
1)执行析构函数中的代码
2)释放成员变量
3)释放基类部分

读书人网 >C++

热点推荐