C++構(gòu)造函數(shù)怎樣實(shí)現(xiàn)默認(rèn)初始化

c++
小樊
82
2024-11-09 00:28:27

在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è)成員變量 xy。我們定義了一個(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ì)象。

0