/*
*Copyright (c)2016,烟台大学计算机与控制工程学院
*All rights reserved.
*文件名称:main.cpp
*作 者:郭永恒
*完成日期:2016年3月26日
*版 本 号:v1.0
*
*问题描述:基于问题(1),设计析构函数和构造函数
*/
#include <iostream>
#include <string>
using namespace std;
class Role
{
public:
Role(string nam = " ",int blo = 0): name(nam),blood(blo){life = blood > 0 ? true : false;}//构造函数
~Role()//析构函数
{
cout << name << "退出江湖..." << endl;
}
void setRole(string nam, int blo);
void show();
void attack();
void eat(int num);
void beAttack();
private:
string name;
int blood;
bool life;
};
void Role::setRole(string nam, int blo)
{
name = nam;
blood = blo;
if(blo > 0)
life = true;
else
life = false;
}
void Role::show()
{
cout << name << " has " << blood << " blood, it is ";
if(blood > 0)
cout << "alived." << endl;
else
cout << "dead." << endl;
}
void Role::attack()//攻击敌人,附带吸血效果
{
blood++;
}
void Role::beAttack()
{
blood--;
if(blood == 0)
life = false;
}
void Role::eat(int num)
{
blood += num;
}
int main()
{
Role mary("Mary",4);
Role jack("Jack",0);
mary.show();
jack.show();
return 0;
}
运行结果: