20180315 代碼錯題(7)


下面程序的運行結果為(        )
#include <iostream>
using namespace std;
class A{
public:A(){cout<<"1";}
~A(){cout<<"2";1}
};
class B:public A{
public:B(){cout<<"3";}
~B(){cout<<"4";}
};
void main(){B b;}
 
1234
1324
1342
3142

答案 C
實例化子類對象構造函數調用順序:父類,成員對象,子類;
析構順序:子類,成員對象,父類
 
在C++中:
     (1)對於構造函數,先調用基類的構造函數,再調用派生類的構造函數,就像蓋樓房一樣,從地基開始,一層兩層往上蓋。。。
     (2)對於析構函數,先是調用派生類的析構函數,再調用基類的析構函數,就像拆樓房一樣,從上面開始拆。。。
    注:先構造的后析構。

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2020 ITdaan.com