C++ 省略可能引数を使ったコンストラクタ

コンストラクタは、メンバ関数のように
省略可能引数を使った記述が可能です。

省略可能引数を使ったメンバ関数についてはコチラ

class Cdata {
public:
      int a;
      int b;
      int c;

      Cdata(int data1 = 0, int data2 = 0, int data3 = 0) {
            a = data1;
            b = data2;
            c = data3;
      }
};

void main() {
      // 引数なし形式でコンストラクタ呼び出し
      Cdata obj1;

      // 引数が1つの形式でコンストラクタ呼び出し
      Cdata obj2(5);

      // 引数が2つの形式でコンストラクタ呼び出し
      Cdata obj3(5, 10);

      // 引数が3つの形式でコンストラクタ呼び出し
      Cdata obj4(5, 10, 50);
}

この例では、クラスCdataに1つのコンストラクタがあります。

引数は、3つとも省略可能引数が設定されているため、
引数なし、引数1個、引数2個、引数3個の形式での
コンストラクタ呼び出しにたった1つのコンストラクタで全てに対応できます

このように、大変効率が良い記述方法なので、ぜひ活用して下さい。