Top > C++言語 > コンストラクタ


コンストラクタ

定義と活用法
  • 特殊なメンバ関数である
  • コンストラクタ (constructor) は、「構築子」と訳される
  • クラスのオブジェクトがメモリ上に作成されるタイミングで自動的に呼び出されるメンバ関数である
  • コンストラクタは、何らかの初期化処理を行う為のメンバ関数となる
ルール
  • クラス名と同じ名前のメンバ関数として定義する
  • 戻り値を指定しない (void)
  • アクセス識別子として、public: を指定する
  • 直接コンストラクタを呼び出すと、エラーとなる
サンプル
すべてを展開すべてを収束
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 
 
 
-
|
|
|
|
-
|
!
|
-
|
!
|
!
 
 
 
-
|
|
!
 
 
 
-
|
|
!
#include <stdio.h>
 
class Car
{
public:
  int num;
  double gas;
  void setGas (double g)
  {
    gas += 1.00;
  }
  void showCar (void)
  {
    printf ("num = %d, gas = %f\n", num, gas);
  }
  void Car (void);
};
 
void
Car::Car (void)
{
  num = 1234;
  gas = 25.00;
}
 
void
main (void)
{
  Car ca;
  ca.showCar ();
}
実行結果
num = 1234, gas = 25.000000
  • コンストラクタの中で何をしてもOKだか、メンバ変数に適切な初期値を代入する処理を行うのが一般的
  • コンストラクタは、オブジェクト指向プログラミングの目的であるプログラミングの効率化を実現する


コンストラクタのオーバーロード

  • コンストラクタには、引数があってもかまわない
  • 引数を持つコンストラクタを定義する場合は、メンバ変数の初期値を引数で受け取るのが一般的
  • コンストラクタはメソッドの一種なので、オーバーロードを行うことができる
サンプル
すべてを展開すべてを収束
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 
 
 
-
|
|
|
|
-
|
!
|
-
|
!
|
|
!
 
 
 
-
|
|
!
 
 
 
-
|
|
!
 
 
 
-
|
|
|
|
|
!
#include <stdio.h>
 
class Car
{
public:
  int num;
  double gas;
  void setGas (double g)
  {
    gas += 1.00;
  }
  void showCar (void)
  {
    printf ("num = %d, gas = %f\n", num, gas);
  }
  void Car (void);
  void Car (int a, double b);
};
 
void
Car::Car (void)
{
  num = 1234;
  gas = 25.00;
}
 
void
Car:Car (int a, double b)
{
  num = a;
  gas = b;
}
 
void
main (void)
{
  Car toyota;
  Car suzuki (5678, 10.00);
 
  toyota.showCar ();
  suzuki.showCar ();
}
実行結果
num = 1234, gas = 25.000000
num = 5678, gas = 10.000000


参考


リロード   凍結解除 コピー 名前変更   ホーム 一覧 検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS
Last-modified: Mon, 03 Jun 2019 14:37:49 UTC (2087d)