/*
*Copyright(c) 2016,烟台大学计算机与控制工程学院
*All rights reserved.
*文件名称:my.cpp
*作 者:张瀚文
*完成日期:2016年4月13日
*版 本 号:v1.0
*
*问题描述:1.用之前的代码 设计带武器的类
*输入描述:
*程序输出:
*/
#include <iostream>
using namespace std;
class Weapon
{
public:
int damage()
{
return w_damage;
}
Weapon(string ww_name,int ww_damage):w_name(ww_name),w_damage(ww_damage){}
private :
int w_damage;
string w_name;
} ;
class Role
{
public:
Role(string x,int n,string ww_name,int ww_damage):name(x),blood(n),weapon(ww_name,ww_damage){} ;
void setRole(string x,int n,string w_name,int w_damage);
void showmessage();
void attack(Role &x);
void eat(int x);
bool staus();
private:
string name;
int blood;
bool life;
Weapon weapon;
};
bool Role::staus()
{
if(blood>0)
life=true;
else
life=false;
return life;
}
void Role::showmessage()
{
if(staus())
cout<<name<<" the blood:"<<blood<<endl<<"stuas:"<<" alive"<<endl;
else
cout<<"dead"<<endl;
}
void Role::attack(Role &x)
{
if(staus())
{
blood+=weapon.damage();
x.blood-=weapon.damage();
if(x.blood<0)
x.life=false;
}
}
void Role::eat(int x)
{
blood+=x;
}
int main()
{
Role mary("mary",100,"sword",10);
Role jack("jack",100,"axe",5);
mary.showmessage();
jack.showmessage();
mary.attack(jack);
mary.eat(2);
jack.eat(4);
mary.showmessage();
jack.showmessage();
return 0;
}
<img src="https://img-blog.csdn.net/20160413181857932" alt="" />