第六周项目2-带武器的类

/*
 *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="" />

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值