スポンサードリンク
HOME > C++言語 > クラス機能 コンストラクタの多重定義(オーバーロード)

C++言語 - クラス機能 コンストラクタの多重定義(オーバーロード)

コンストラクタは、メンバ関数のように多重定義(オーバーロード)が可能です。

メンバ関数の多重定義(オーバーロード)についてはコチラ


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

   // コンストラクタ
   
Cdata() {
      a = 0;
      b = 0;
      c = 0;
   }

   // 引数が1つのコンストラクタ
   
Cdata(int data1) {
      a = data1;
      b = 0;
      c = 0;
   }

   // 引数が2つのコンストラクタ
   
Cdata(int data1, int data2) {
      a = data1;
      b = data2;
      c = 0;
   }

   // 引数が3つのコンストラクタ
   
Cdata(int data1, int data2, int data3) {
      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,2,3個のコンストラクタが

多重定義(オーバーロード)されています。

それぞれのコンストラクタの呼び出し方は、実際にクラスのインスタンスを作る時に、

インスタンス名の後ろにカッコをつけて、関数のように引数を記述します。

引数を指定しなかった場合、引数なしのコンストラクタが呼び出されます。

引数を1つ指定した場合は、引数1個のコンストラクタが呼び出されます。

それぞれ2個、3個の場合も同様。



スポンサードリンク







HOME

言語解説編
プログラミング用語・知識

C言語

C++言語

Java

C#

Visual Basic.NET

アプリケーション編
C言語による
コンソールプログラミング




Copyright (C) プログラミングランド All Rights Reserved