在C++中,構(gòu)造函數(shù)可以通過(guò)不定義任何參數(shù)來(lái)實(shí)現(xiàn)默認(rèn)初始化。當(dāng)創(chuàng)建一個(gè)對(duì)象時(shí),如果未提供任何構(gòu)造函數(shù)參數(shù),編譯器將自動(dòng)生成一個(gè)默認(rèn)構(gòu)造函數(shù)。這個(gè)默認(rèn)構(gòu)造函數(shù)會(huì)使用成員初始化列表(member initializer list)來(lái)初始化類的成員變量,如果沒(méi)有提供成員初始化列表,則使用成員變量的默認(rèn)構(gòu)造函數(shù)(如果有的話)。
以下是一個(gè)示例:
#include <iostream>
class MyClass {
public:
int x;
double y;
// 默認(rèn)構(gòu)造函數(shù)
MyClass() : x(0), y(0.0) {
std::cout << "Default constructor called" << std::endl;
}
};
int main() {
MyClass obj; // 調(diào)用默認(rèn)構(gòu)造函數(shù)
return 0;
}
在這個(gè)例子中,MyClass
類有兩個(gè)成員變量 x
和 y
。我們定義了一個(gè)默認(rèn)構(gòu)造函數(shù) MyClass()
,它使用成員初始化列表將 x
初始化為 0,將 y
初始化為 0.0。當(dāng)我們創(chuàng)建一個(gè) MyClass
對(duì)象 obj
時(shí),編譯器會(huì)自動(dòng)調(diào)用默認(rèn)構(gòu)造函數(shù)來(lái)初始化對(duì)象。