2010年5月25日火曜日

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

今日はC++でクラスのメンバ変数参照型にする方法を紹介します。
その方法とは?!
  • コンストラクタ初期化子を使用する
です。
コンストラクタ初期化子を使うとクラスメンバの生成と同時に値を代入したり、メンバのコンストラクタに引数を与えることができます。
これを利用して参照型の変数を初期化することが可能です。
サンプルコードを用意しました。
#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 件のコメント:

コメントを投稿