/* Copyright (c) 2016
* All rights reserved
* 文件名称:3.cpp
* 作者:刘丽
* 完成日期:2016年 4 月 7日
* 版本号: v1.0
*
* 问题描述:一个关于带武器的游戏角色类
*/
#include <iostream>
#include<string>
using namespace std;
class Role;
/***************************************/
class arms
{
friend class Role;
private:
string name;
int powers;
int quality;
public:
arms(string="0" ,int=2 ,int=1);
};
arms::arms(string name,int powers,int quality):name(name),powers(powers),quality(quality)
{
}
/*****************************/
class Role
{
public:
Role( string name,int power,int blood);
void show();
void beattack(int n);
void eat(int n);
int attack();
void take();
void broke();
void put();
private:
int blood;
int power;
string name;
arms dao;
};
Role::Role( string name,int power,int blood):name(name),power(power),blood(blood)
{
}
void Role::show()
{
if(blood)
cout<<name<<" has "<<blood<<",he is alive."<<endl;
else
cout<<name<<" is died."<<endl;
}
void Role::eat(int n)
{
blood+=n;
}
void Role::take()
{
power+=dao.powers;
}
void Role::put()
{
power-=dao.powers;
}
void Role::broke()
{
dao.powers=0;
}
void Role::beattack(int n)
{
blood-=n;
if(blood<0)
blood=0;
}
int Role::attack()
{
return power;
}
int main()
{
Role Mary("mary",1,5),Tom("Tom",1,4);
Mary.show(); Tom.show();
Mary.take();
Mary.beattack(Tom.attack());
Mary.show();
Tom.beattack(Mary.attack());
Tom.show();
Tom.take();
Tom.beattack(Mary.attack());
Tom.show();
return 0;
}