溫馨提示×

C++構造函數(shù)支持委托構造嗎

c++
小樊
81
2024-11-09 00:29:26
欄目: 編程語言

是的,C++ 構造函數(shù)支持委托構造。委托構造是指一個構造函數(shù)可以調用同一個類中的另一個構造函數(shù),從而避免代碼重復。委托構造在 C++11 中引入,使用 this 指針實現(xiàn)。

以下是一個簡單的示例:

#include <iostream>

class MyClass {
public:
    int x, y;

    // 普通構造函數(shù)
    MyClass(int a, int b) : x(a), y(b) {
        std::cout << "普通構造函數(shù)被調用" << std::endl;
    }

    // 委托構造
    MyClass() : MyClass(0, 0) {
        std::cout << "默認構造函數(shù)被調用" << std::endl;
    }

    // 委托構造
    MyClass(int a) : MyClass(a, 0) {
        std::cout << "帶一個參數(shù)的構造函數(shù)被調用" << std::endl;
    }
};

int main() {
    MyClass obj1; // 調用默認構造函數(shù)
    MyClass obj2(3); // 調用帶一個參數(shù)的構造函數(shù)
    MyClass obj3(4, 5); // 調用普通構造函數(shù)

    return 0;
}

在這個示例中,我們定義了一個名為 MyClass 的類,它具有三個構造函數(shù)。其中一個構造函數(shù)是默認構造函數(shù),它調用了另一個帶有兩個參數(shù)的構造函數(shù)。這樣,我們可以避免代碼重復,并使構造函數(shù)之間的關系更加清晰。

0