2010年5月25日火曜日

C++でクラスメンバ変数を参照型にする

今日はC++でクラスのメンバ変数参照型にする方法を紹介します。
その方法とは?!
  • コンストラクタ初期化子を使用する
です。
コンストラクタ初期化子を使うとクラスメンバの生成と同時に値を代入したり、メンバのコンストラクタに引数を与えることができます。
これを利用して参照型の変数を初期化することが可能です。
サンプルコードを用意しました。
  1. #include <stdio.h>  
  2. #include "Monster.h"  
  3.   
  4. void main(void)  
  5. {  
  6.     int hp = 111;  
  7.     int mp = 222;  
  8.   
  9.     //  Monster生成  
  10.     Monster monster(hp, mp);  
  11.   
  12.     //  参照している変数の値を変更  
  13.     hp = 100;  
  14.     mp = 100;  
  15.   
  16.     //  表示  
  17.     printf("HP:%d\n", monster.HP);  
  18.     printf("MP:%d\n", monster.MP);  
  19.   
  20.     printf("hit any key...\n");  
  21.     while(getchar() == EOF){}  
  22. }  
  23. </stdio.h>  
  1. #ifndef _MONSTER_H_  
  2. #define _MONSTER_H_  
  3.   
  4. #include <stdio.h>  
  5.   
  6. class Monster  
  7. {  
  8.     //----------------------------------  
  9.     //  field  
  10.     //----------------------------------  
  11. public:  
  12.     int& HP;    //  メンバ変数が参照型  
  13.     int& MP;    //  メンバ変数が参照型  
  14.     //----------------------------------  
  15.     //  method  
  16.     //----------------------------------  
  17. public:  
  18.     //  constructor  
  19.     Monster(int& _hp, int& _mp) :   //  コロンをわすれずに!  
  20.         HP(_hp),    //  初期化子  
  21.         MP(_mp)     //  初期化子  
  22.     {  
  23.         //  do nothing...  
  24.     }  
  25.   
  26. };  
  27. #endif  
  28. </stdio.h>  
ソースコードの内容については余りつっこまないでください(汗
時間がなくてこんな例しか作れませんでした。

0 件のコメント:

コメントを投稿