C++ 默認構造函數(Default Constructor)是可以被繼承的。當一個類沒有定義任何構造函數時,編譯器會自動為其提供一個默認構造函數。這個默認構造函數會調用基類的默認構造函數來初始化基類部分。
當派生類繼承基類時,如果派生類沒有定義任何構造函數,編譯器會自動為其提供一個默認構造函數。這個默認構造函數會調用基類的默認構造函數來初始化基類部分。如果派生類定義了其他構造函數,但沒有顯式調用基類的構造函數,編譯器會自動插入一個對基類默認構造函數的調用。
以下是一個簡單的例子,展示了繼承默認構造函數的情況:
#include <iostream>
class Base {
public:
Base() {
std::cout << "Base default constructor called" << std::endl;
}
};
class Derived : public Base {
public:
// 使用默認構造函數繼承 Base 類
Derived() {
std::cout << "Derived default constructor called" << std::endl;
}
};
int main() {
Derived d; // 調用 Derived 類的默認構造函數,間接調用 Base 類的默認構造函數
return 0;
}
輸出結果:
Base default constructor called
Derived default constructor called