- * All rights reserved,
- * 文件名称:text.Cpp
- * 作者:刘默涵
- * 完成日期:2016年4月14日
- * 版本号:vc++6.0
- *
- * 问题描述: 用多文件组织多个类的程序之带武器的游戏角色类,体会这样做的优点
- */
一.
- #include <iostream>
- #include "game.h"
- using namespace std;
- int main( )
- {
- Role mary("Mary",500,"TuLong",200);
- Role jack("Jack",10,"YiTian",180);
- cout<<"---begin---"<<endl;
- mary.show();
- jack.show();
- cout<<"---1st round---"<<endl;
- jack.attack(mary);
- mary.show();
- jack.show();
- cout<<"---2nd round---"<<endl;
- mary.attack(jack);
- mary.show();
- jack.show();
- cout<<"---end---"<<endl;
- return 0;
- }
#ifndef GAME_H_INCLUDED
- #define GAME_H_INCLUDED
- using namespace std;
- class Weapon
- {
- public:
- Weapon(string wnam, int f);
- int getForce();
- private:
- string wname; //名称
- int force; //威力
- };
- class Role
- {
- public:
- Role(string nam, int b, string wnam, int f); //构造函数
- ~Role(); //析构函数
- void eat(int d); //吃东西,涨d血
- void attack(Role &r); //攻击别人,自己涨血,同时失血
- bool isAlived(); //是否活着
- void show(); //显示
- private:
- string name;
- int blood;
- Weapon weapon;
- bool life;
- };
- #endif // GAME_H_INCLUDED
三.
- #include "game.h"
- using namespace std;
- Role::Role(string nam, int b, string wnam, int f):name(nam),blood(b),weapon(wnam,f)
- {
- if(blood>0)
- life=true;
- else
- life=false;
- }
- Role::~Role()
- {
- cout<<name<<"退出江湖..."<<endl;
- }
- void Role::eat(int d) //吃东西,涨d血
- {
- if(isAlived())
- blood+=d;
- }
- void Role::attack(Role &r) //攻击别人,涨1血
- {
- if(isAlived())
- {
- blood+=weapon.getForce();
- r.blood-=weapon.getForce();
- if(r.blood<=0)
- r.life=false;
- }
- }
- bool Role::isAlived() //是否活着
- {
- return life;
- }
- void Role::show() //显示
- {
- cout<<name<<" has "<<blood<<" blood, it is ";
- if(isAlived())
- cout<<"alived.";
- else
- cout<<"dead.";
- cout<<endl;
- }
- #include "game.h"
- using namespace std;
- Weapon::Weapon(string wnam, int f):wname(wnam),force(f) {}
- int Weapon::getForce()
- {
- return force;
- }#include <iostream>
- #include "game.h"
- using namespace std;
- Weapon::Weapon(string wnam, int f):wname(wnam),force(f) {}
- int Weapon::getForce()
- {
- return force;
- }