C++ Primer Plus學習筆記之繼承類的初始化順序
基類的構造函數,析構函數和操作符函數operator=是不能被派生類繼承的;
那麼,當創建一個派生類對象時,怎樣調用基類的構造函數對基類的數據進行初始化呢???
答案是:構造函數執行時遵行先兄長(基類),再客人(對象成員),後自己(派生類)的順序;
另一方面,執行析構函數時,先執行派生類的析構函數,再執行基類的析構函數。原因是,對基類的破壞隱含了對派生類的破壞,所以派生類的析構函數必須先執行;
#include
using namespace std;
class Member
{
public:
Member()
{
cout<<"Member created"<運行結果:
Base created
Member created
Derived created
Derived destroyed
Member destroyed
Base destroyed