派生类构造函数和析构函数的执行顺序
生活随笔
收集整理的這篇文章主要介紹了
派生类构造函数和析构函数的执行顺序
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
派生類繼承了基類的成員,實現了代碼的重復利用,但基類的構造函數和析構函數不能被繼承。如果在派生類中需要對新增加的成員進行初始化,則需要加入派生類的構造函數。同樣派生類也需要添加析構函數來實現一些結束工作。 當創建對象時,編譯系統會自動調用構造函數。當撤銷對象時,編譯系統會自動調用析構函數。當創建派生類的對象時,首先執行基類的構造函數,然后執行派生類的構造函數。當撤銷對象時,則先執行派生類的析構函數,然后再執行基類的析構函數。 例子: #include"iostream.h"???? class A?????//定義一個類???? {???? public: A()????????//類的構造函數???????????? { cout<<"基類的構造函數"<<endl; }???????????? ~A()?????//類的析構函數???????????? { cout<<"基類的析構函數"<<endl; }???? };???? class B:public A????//派生類???? {???? public:???????????? B()????????????????????//派生類的構造函數???????????? { cout<<"派生類的構造函數"<<endl; }???????????? ~B()?????????????????//派生類的析構函數???????????? { cout<<"派生類的析構函數"<<endl; }? };? void main()? { B p;????????????????//派生類的對象???? } 輸出: 基類的構造函數 派生類的構造函數 派生類的析構函數 基類的析構函數當類內包含其他對象時,將這個類對象叫做內含類對象,該對象的初始化工作必須放在構造函數的初始化列表中,內含類對象和包含它的類對象的構造函數順序是:先是內含類的構造函數,然后是外部類的構造函數。
轉載于:https://blog.51cto.com/luisliu/226618
總結
以上是生活随笔為你收集整理的派生类构造函数和析构函数的执行顺序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: documentum中的Fulltext
- 下一篇: 冬天了,麦克风/话筒 有杂音 的原因!