その方法とは?!
- コンストラクタ初期化子を使用する
コンストラクタ初期化子を使うとクラスメンバの生成と同時に値を代入したり、メンバのコンストラクタに引数を与えることができます。
これを利用して参照型の変数を初期化することが可能です。
サンプルコードを用意しました。
- #include <stdio.h>
- #include "Monster.h"
- void main(void)
- {
- int hp = 111;
- int mp = 222;
- // Monster生成
- Monster monster(hp, mp);
- // 参照している変数の値を変更
- hp = 100;
- mp = 100;
- // 表示
- printf("HP:%d\n", monster.HP);
- printf("MP:%d\n", monster.MP);
- printf("hit any key...\n");
- while(getchar() == EOF){}
- }
- </stdio.h>
- #ifndef _MONSTER_H_
- #define _MONSTER_H_
- #include <stdio.h>
- class Monster
- {
- //----------------------------------
- // field
- //----------------------------------
- public:
- int& HP; // メンバ変数が参照型
- int& MP; // メンバ変数が参照型
- //----------------------------------
- // method
- //----------------------------------
- public:
- // constructor
- Monster(int& _hp, int& _mp) : // コロンをわすれずに!
- HP(_hp), // 初期化子
- MP(_mp) // 初期化子
- {
- // do nothing...
- }
- };
- #endif
- </stdio.h>
時間がなくてこんな例しか作れませんでした。
0 件のコメント:
コメントを投稿