第27講 クラスの学習その2☆☆
第6話 派生クラスの継承クラス
コーティング例
#include<iostream>
using namespace std;

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

class Gakusei :public Hito{
public:
  int gakuryoku;
  Gakusei(char* name,int age,int hp,int mp,int keikenti,int gakuryoku):Hito(name,age,hp,mp,keikenti),gakuryoku(gakuryoku){}
  void taberu(){hp+=6;}
  void suimin(){mp+=7;}
  void tatakau(){hp--;mp--;keikenti+=3;}
  void sentou(){hp-=4;mp-=3;keikenti+=6;}
  void benkyou(){gakuryoku+=5;}
  void sinkyuu(){gakuryoku+=8;hp+=8;mp+=6;keikenti+=6;}
};

class SentouCircle :public Gakusei{
public:
  SentouCircle(char* name,int age,int hp,int mp,int keikenti,int gakuryoku):Gakusei(name,age,hp,mp,keikenti,gakuryoku){}
  void taberu(){hp+=8;}
  void suimin(){mp+=10;}
  void tatakau(){hp--;mp--;keikenti+=10;}
  void sentou(){hp-=2;mp-=2;keikenti+=20;}
  void benkyou(){gakuryoku+=5;}
  void sinkyuu(){gakuryoku+=12;hp+=13;mp+=12;keikenti+=10;}
};

void main(){
  Hito taro("太郎",25,30,35,100);
  cout<<"名前:"<<taro.name<<" 年齢"<<taro.age<<" HP:"<<taro.hp<<" MP:"<<taro.mp<<" 経験値:"<<taro.keikenti<<endl;
  taro.taberu();
  taro.suimin();
  cout<<"太郎は、食事をして睡眠をとったのでHPとMPが回復した。"<<" 経験値:"<<taro.keikenti<<endl;
  cout<<"名前:"<<taro.name<<" 年齢"<<taro.age<<" HP:"<<taro.hp<<" MP:"<<taro.mp<<" 経験値:"<<taro.keikenti<<endl;
  taro.tatakau();
  cout<<"太郎は、弱い敵と戦ったのでHPとMPを少し消耗した。"<<" 経験値:"<<taro.keikenti<<endl;
  cout<<"名前:"<<taro.name<<" 年齢"<<taro.age<<" HP:"<<taro.hp<<" MP:"<<taro.mp<<" 経験値:"<<taro.keikenti<<endl;
  taro.sentou();
  cout<<"太郎は、強い敵と戦ったのでHPとMPをかなり消耗した。"<<" 経験値:"<<taro.keikenti<<endl;
  cout<<"名前:"<<taro.name<<" 年齢"<<taro.age<<" HP:"<<taro.hp<<" MP:"<<taro.mp<<" 経験値:"<<taro.keikenti<<endl;
  taro.tositoru();
  cout<<"太郎は、年齢が1つ上がったのでHPとMPも増えた。"<<" 経験値:"<<taro.keikenti<<endl;
  cout<<"名前:"<<taro.name<<" 年齢"<<taro.age<<" HP:"<<taro.hp<<" MP:"<<taro.mp<<" 経験値:"<<taro.keikenti<<endl;

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

  cout<<endl;
  SentouCircle jiro("次郎",16,21,35,60,30);
  cout<<"名前:"<<jiro.name<<" 年齢"<<jiro.age<<" HP:"<<jiro.hp<<" MP:"<<jiro.mp<<" 学力:"<<jiro.gakuryoku<<" 経験値:"<<jiro.keikenti<<endl;
  jiro.taberu();
  jiro.suimin();
  jiro.benkyou();
  cout<<"次郎は、食事をして勉強してから睡眠をとったので、HPとMPが回復し学力が伸びた。"<<endl;
  cout<<"名前:"<<jiro.name<<" 年齢"<<jiro.age<<" HP:"<<jiro.hp<<" MP:"<<jiro.mp<<" 学力:"<<jiro.gakuryoku<<" 経験値:"<<jiro.keikenti<<endl;
  jiro.tatakau();
  cout<<"次郎は、弱い敵と戦ったのでHPとMPを少し消耗した。"<<" 経験値:"<<jiro.keikenti<<endl;
  cout<<"名前:"<<jiro.name<<" 年齢"<<jiro.age<<" HP:"<<jiro.hp<<" MP:"<<jiro.mp<<" 学力:"<<jiro.gakuryoku<<" 経験値:"<<jiro.keikenti<<endl;
  jiro.sentou();
  cout<<"次郎は、強い敵と戦ったのでHPとMPをかなり消耗した。"<<" 経験値:"<<jiro.keikenti<<endl;
  cout<<"名前:"<<jiro.name<<" 年齢"<<jiro.age<<" HP:"<<jiro.hp<<" MP:"<<jiro.mp<<" 学力:"<<jiro.gakuryoku<<" 経験値:"<<jiro.keikenti<<endl;
  jiro.sinkyuu();
  cout<<"次郎は、進級したのでHP,MP,学力のすべてがかなり増えた。"<<endl;
  cout<<"名前:"<<jiro.name<<" 年齢"<<jiro.age<<" HP:"<<jiro.hp<<" MP:"<<jiro.mp<<" 学力:"<<jiro.gakuryoku<<" 経験値:"<<jiro.keikenti<<endl;

  cout<<endl;
  SentouCircle youko("陽子",17,25,42,72,43);
  cout<<"名前:"<<youko.name<<" 年齢"<<youko.age<<" HP:"<<youko.hp<<" MP:"<<youko.mp<<" 学力:"<<youko.gakuryoku<<" 経験値:"<<youko.keikenti<<endl;
  youko.taberu();
  youko.suimin();
  youko.benkyou();
  cout<<"陽子は、食事をして勉強してから睡眠をとったので、HPとMPが回復し学力が伸びた。"<<endl;
  cout<<"名前:"<<youko.name<<" 年齢"<<youko.age<<" HP:"<<youko.hp<<" MP:"<<youko.mp<<" 学力:"<<youko.gakuryoku<<" 経験値:"<<youko.keikenti<<endl;
  youko.tatakau();
  cout<<"陽子は、弱い敵と戦ったのでHPとMPを少し消耗した。"<<" 経験値:"<<youko.keikenti<<endl;
  cout<<"名前:"<<youko.name<<" 年齢"<<youko.age<<" HP:"<<youko.hp<<" MP:"<<youko.mp<<" 学力:"<<youko.gakuryoku<<" 経験値:"<<youko.keikenti<<endl;
  youko.sentou();
  cout<<"陽子は、強い敵と戦ったのでHPとMPをかなり消耗した。"<<" 経験値:"<<youko.keikenti<<endl;
  cout<<"名前:"<<youko.name<<" 年齢"<<youko.age<<" HP:"<<youko.hp<<" MP:"<<youko.mp<<" 学力:"<<youko.gakuryoku<<" 経験値:"<<youko.keikenti<<endl;
  youko.sinkyuu();
  cout<<"陽子は、進級したのでHP,MP,学力のすべてがかなり増えた。"<<" 経験値:"<<youko.keikenti<<endl;
  cout<<"名前:"<<youko.name<<" 年齢"<<youko.age<<" HP:"<<youko.hp<<" MP:"<<youko.mp<<" 学力:"<<youko.gakuryoku<<" 経験値:"<<youko.keikenti<<endl;
}

実行結果



第5話へ
28講第1話へ

戻る

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