第27講 クラスの学習その2☆☆
第5話 第4話問題解答例
実行結果

コーティング例
#include<iostream>
using namespace std;

struct Hito{
public:
  char* name;
  int age,hp,mp;
  Hito(char* name,int age,int hp,int mp):name(name),age(age),hp(hp),mp(mp){}
  void taberu(){hp+=3;}
  void suimin(){mp+=4;}
  void tatakau(){hp-=2;mp-=2;}
  void sentou(){hp-=5;mp-=4;}
  void tositoru(){age++;hp+=5;mp+=4;}
};

class Gakusei :public Hito{
public:
  int gakuryoku;
  Gakusei(char* name,int age,int hp,int mp,int gakuryoku):Hito(name,age,hp,mp),gakuryoku(gakuryoku){}
  void taberu(){hp+=6;}
  void suimin(){mp+=7;}
  void tatakau(){hp--;mp--;}
  void sentou(){hp-=4;mp-=3;}
  void benkyou(){gakuryoku+=5;}
  void sinkyuu(){gakuryoku+=8;hp+=8;mp+=6;}
};
void main(){
  Hito taro("太郎",25,30,35);
  cout<<"名前:"<<taro.name<<" 年齢"<<taro.age<<" HP:"<<taro.hp<<" MP:"<<taro.mp<<endl;
  taro.taberu();
  taro.suimin();
  cout<<"太郎は、食事をして睡眠をとったのでHPとMPが回復した。"<<endl;
  cout<<"名前:"<<taro.name<<" 年齢"<<taro.age<<" HP:"<<taro.hp<<" MP:"<<taro.mp<<endl;
  taro.tatakau();
  cout<<"太郎は、弱い敵と戦ったのでHPとMPを少し消耗した。"<<endl;
  cout<<"名前:"<<taro.name<<" 年齢"<<taro.age<<" HP:"<<taro.hp<<" MP:"<<taro.mp<<endl;
  taro.sentou();
  cout<<"太郎は、強い敵と戦ったのでHPとMPをかなり消耗した。"<<endl;
  cout<<"名前:"<<taro.name<<" 年齢"<<taro.age<<" HP:"<<taro.hp<<" MP:"<<taro.mp<<endl;
  taro.tositoru();
  cout<<"太郎は、年齢が1つ上がったのでHPとMPも増えた。"<<endl;
  cout<<"名前:"<<taro.name<<" 年齢"<<taro.age<<" HP:"<<taro.hp<<" MP:"<<taro.mp<<endl;

  cout<<endl;
  Gakusei hanako("花子",15,11,15,20);
  cout<<"名前:"<<hanako.name<<" 年齢"<<hanako.age<<" HP:"<<hanako.hp<<" MP:"<<hanako.mp<<" 学力:"<<hanako.gakuryoku<<endl;
  hanako.taberu();
  hanako.suimin();
  hanako.benkyou();
  cout<<"花子は、食事をして勉強してから睡眠をとったので、HPとMPが回復し学力が伸びた。"<<endl;
  cout<<"名前:"<<hanako.name<<" 年齢"<<hanako.age<<" HP:"<<hanako.hp<<" MP:"<<hanako.mp<<" 学力:"<<hanako.gakuryoku<<endl;
  hanako.tatakau();
  cout<<"花子は、弱い敵と戦ったのでHPとMPを少し消耗した。"<<endl;
  cout<<"名前:"<<hanako.name<<" 年齢"<<hanako.age<<" HP:"<<hanako.hp<<" MP:"<<hanako.mp<<" 学力:"<<hanako.gakuryoku<<endl;
  hanako.sentou();
  cout<<"花子は、強い敵と戦ったのでHPとMPをかなり消耗した。"<<endl;
  cout<<"名前:"<<hanako.name<<" 年齢"<<hanako.age<<" HP:"<<hanako.hp<<" MP:"<<hanako.mp<<" 学力:"<<hanako.gakuryoku<<endl;
  hanako.sinkyuu();
  cout<<"花子は、進級したのでHP,MP,学力のすべてがかなり増えた。"<<endl;
  cout<<"名前:"<<hanako.name<<" 年齢"<<hanako.age<<" HP:"<<hanako.hp<<" MP:"<<hanako.mp<<" 学力:"<<hanako.gakuryoku<<endl;
}

皆さんは、経験値などフィールドを増やしいろいろ試してみましょう。
また、派生クラスGakuseiから、さらに派生クラスSentouCircle(戦闘サークル)を継承させてみましょう。
戦闘サークルの学生は、もちろん、戦いに長けていてHP、MP、経験値なども大きく、
強い敵との戦いsentou()でのHP・MPの消耗も少なく、得る経験値も大きいと設定しましょう。



第4話へ 第6話へ

戻る

VC++講義第1部へ
vb講義へ
VB講義基礎へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座