C++ 默認(rèn)構(gòu)造函數(shù)(default constructor)是可以被繼承的。當(dāng)一個(gè)類(lèi)沒(méi)有定義任何構(gòu)造函數(shù)時(shí),編譯器會(huì)自動(dòng)生成一個(gè)默認(rèn)構(gòu)造函數(shù)。這個(gè)默認(rèn)構(gòu)造函數(shù)會(huì)調(diào)用基類(lèi)的默認(rèn)構(gòu)造函數(shù)來(lái)初始化基類(lèi)部分。
如果派生類(lèi)需要調(diào)用基類(lèi)的其他構(gòu)造函數(shù),可以在派生類(lèi)的構(gòu)造函數(shù)初始化列表中顯式地調(diào)用基類(lèi)的構(gòu)造函數(shù)。例如:
class Base {
public:
Base() { } // 默認(rèn)構(gòu)造函數(shù)
};
class Derived : public Base {
public:
Derived() : Base() { } // 調(diào)用基類(lèi)的默認(rèn)構(gòu)造函數(shù)
};
在這個(gè)例子中,Derived
類(lèi)繼承了 Base
類(lèi),并且調(diào)用了基類(lèi)的默認(rèn)構(gòu)造函數(shù)來(lái)初始化基類(lèi)部分。