その方法とは?!
- コンストラクタ初期化子を使用する
コンストラクタ初期化子を使うとクラスメンバの生成と同時に値を代入したり、メンバのコンストラクタに引数を与えることができます。
これを利用して参照型の変数を初期化することが可能です。
サンプルコードを用意しました。
#include#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){} }
#ifndef _MONSTER_H_ #define _MONSTER_H_ #includeソースコードの内容については余りつっこまないでください(汗class Monster { //---------------------------------- // field //---------------------------------- public: int& HP; // メンバ変数が参照型 int& MP; // メンバ変数が参照型 //---------------------------------- // method //---------------------------------- public: // constructor Monster(int& _hp, int& _mp) : // コロンをわすれずに! HP(_hp), // 初期化子 MP(_mp) // 初期化子 { // do nothing... } }; #endif
時間がなくてこんな例しか作れませんでした。
0 件のコメント:
コメントを投稿