|
コンストラクタ
- 定義と活用法
- 特殊なメンバ関数である
- コンストラクタ (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
参考
|
|