子类对象包孕的基类数据是在子类中析构还是基类
子类对象包含的基类数据是在子类中析构还是基类
大家好,B中包含了A中的i变量,对象析构时,B中的i变量是在~B中清理还是在~A中清理
在~A中理由:构造函数就是调用基类构造函数赋值,所以析构也是
在~B中理由:继承A,i就是B的了
------解决方案--------------------
应该是~A
------解决方案--------------------
当B析构的时候
1)执行析构函数中的代码
2)释放成员变量
3)释放基类部分
- 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)释放基类部分