C++ コンストラクタ初期化リストとは?書き方と注意点

C++では、コンストラクタの初期化リストは、オブジェクトのメンバ変数を初期化する方法の一つです。コンストラクタの初期化リストを使用すると、オブジェクトを作成する際にメンバ変数に直接値を割り当てることができ、コンストラクタの中で一つずつメンバ変数を初期化する必要がありません。

以下是一个使用构造函数初始化列表的例子:

#include <iostream>

class MyClass {
public:
    MyClass(int a, int b) : x(a), y(b) {
        // 构造函数体内不需要再对 x 和 y 进行赋值
    }

    void print() {
        std::cout << "x = " << x << ", y = " << y << std::endl;
    }

private:
    int x;
    int y;
};

int main() {
    MyClass obj(10, 20);
    obj.print();

    return 0;
}

上記の例では、コンストラクタの初期化リスト MyClass(int a, int b) : x(a), y(b) における x(a) と y(b)は、メンバ変数 x と y の初期化を示しており、a と b はコンストラクタの引数です。コンストラクタの初期化リストを使用することで、メンバ変数に直接値を代入することができ、コードがより簡潔で効率的になります。

bannerAds