您的位置:首页 > 其它

第五周项目(3)-设计游戏角色(2)-析构函数

2016-04-04 12:50 281 查看

/*

*copyright (c) 2016,烟台大学计算机学院

*All rights reserved.

*文件名称:hellow.cpp

*作者:田甜

*完成日期:2016年3月31日

*版本号:v1.0

*

*问题描述:设计一个游戏角色类

*输入描述:输入角色姓名,生命值

*程序输出:角色当前状态,并在角色使用结束后输出退出江湖

*/

问题及代码:

#include <iostream>
using namespace std;
class Role
{
public:
Role(string nam,int blo);
~Role();
void shoe_role();
bool is_alived();
void attack();
void be_attacked();
void eat(int d);
private:
string name;
int blood;
bool life;
};

Role::Role(string nam,int blo)//构造函数
{
name=nam;
blood=blo;
if(blood>0)
life=true;
else
life=false;
}

Role::~Role()//析构函数
{
cout<<name<<"退出江湖。。。"<<endl;
}

void Role::shoe_role()//显示角色状态
{
cout<<name<<" has "<<blood<<" blood, it is ";
if(is_alived())
cout<<"alived."<<endl;
else
cout<<"died."<<endl;
}

void Role::eat(int d)//吃东西涨血,涨d个血
{
if(is_alived())
blood+=d;
}

void Role::attack()//攻击其他玩家,涨一个血
{
if(is_alived())
blood++;
}

void Role::be_attacked()//被攻击,失一个血
{
if(is_alived())
blood--;

}

bool Role::is_alived()//判断角色是否死亡
{
if(blood>0)
life=true;
else
life=false;
return life;
}

int main()
{
Role mary("mary",4);
Role jack("jack",2);
mary.attack();
jack.be_attacked();
mary.shoe_role();
jack.shoe_role();
mary.attack();
jack.be_attacked();
mary.eat(2);
mary.shoe_role();
jack.shoe_role();
return 0;
}

运行结果:



心得:构造函数的名字与类名相同,且没有类型。析构函数在主函数中不需要语句调用就可自动执行
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: