/*
*copyright(c) 2016,烟台大学计算机学院
*All rights reserved
*文件名称:test.cpp
*作者:李硕
*版本:Code::Blocks
*
*问题描述:宣告主权
*输入描述:
*程序输出:
*/
#include <iostream>
using namespace std;
class Role
{
friend class Weapon;
public:
void eat(int x);
void attack();
void beAttack();
bool isAlived();
void setRole(string n, int b);
void show(); //显示
private:
string name;
int blood;
bool life;
};
class Weapon
{
public:
void dabaojian(Role &);//被大宝剑攻击
void xiaolidao(Role &);//被小李刀攻击
void usedbj(Role &);//使用攻击
void usexld(Role &);//使用攻击
private:
Role mary;
} ;
void Weapon::dabaojian(Role &mary)
{
mary.blood=mary.blood-4;
}
void Weapon::xiaolidao(Role &mary)
{
mary.blood=mary.blood-2;
}
void Weapon::usedbj(Role &mary)
{
mary.blood=mary.blood+3;
}
void Weapon::usexld(Role &mary)
{
mary.blood=mary.blood+1;
}
void Role::eat(int x)
{
if(isAlived())
blood=blood+x;
}
void Role::attack()
{
blood++;
}
void Role::beAttack()
{
if(isAlived())
blood--;
if(blood==0)
life=false;
}
bool Role::isAlived()
{
if(blood>0)
life=true;
else
life=false;
return life;
}
void Role::setRole(string n, int b)
{
name=n;
blood=b;
cout<<"初始值是:"<<endl;
}
void Role::show()
{
cout<<name<<" 's "<<blood<<" blood is ";
if(isAlived())
cout<<"islive.";
else
{
cout<<"dead."<<endl;
cout<<"GG"<<endl;
}
cout<<endl;
}
int main( )
{
Role mary;
Weapon Weaponattack;
mary.setRole("Mary", 1);
mary.show();
mary.attack();
mary.eat(2);
Weaponattack.dabaojian(mary);
Weaponattack.usedbj(mary);
mary.eat(0);
Weaponattack.xiaolidao(mary);
mary.beAttack();
mary.show();
return 0;
}
<img src="https://img-blog.csdn.net/20160414203546629?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
第6周项目2 武器友元类
最新推荐文章于 2024-06-20 09:00:44 发布