/*2015.烟台大学计算机与控制工程学院
*ALL rightreserved.
*文件名称:test.cpp
*作者:陈文浩
*完成日期:2016年4月6日。
*/
/*问题及代码:
(2)设计构造函数,使角色对象在创建时被初始化;设计析构函数,当角色对象被撤消时,提示一句“XXX(名称)退出江湖…”。可以用下面的代码进行测试,运行结果参考右图:
<code class="hljs scss has-numbering">int <span class="hljs-function">main( )</span> { Role <span class="hljs-function">mary(<span class="hljs-string">"Mary"</span>, <span class="hljs-number">4</span>)</span>; Role <span class="hljs-function">jack(<span class="hljs-string">"Jack"</span>, <span class="hljs-number">0</span>)</span>; mary<span class="hljs-class">.show</span>(); jack<span class="hljs-class">.show</span>(); return 0; }</code>
#include <iostream>
using namespace std
;class Role{public:
Role(string nam, int b); //构造函数
~Role(); //析构函数
void eat(int d); //吃东西,涨d血
void attack(); //攻击别人,涨1血
void beAttack(); //被攻击,失1血,血为0死掉
bool isAlived(); //是否活着 void show();
//显示
private: string name;
int blood; bool life;};Role::Role(string nam, int b){ name=nam; blood=b; if(blood>0) life=true; else life=false;}Role::~Role(){ cout<<name<<"退出江湖..."<<endl;}void Role::eat(int d) //吃东西,涨d血{ if(isAlived()) blood+=d;}void Role::attack() //攻击别人,涨1血{ if(isAlived()) blood++;}void Role::beAttack() //被攻击,失1血,血为0死掉{ if(isAlived()) blood--; if(blood==0) life=false;}bool Role::isAlived() //是否活着{ return life;}void Role::show() //显示{ cout<<name<<" has "<<blood<<" blood, it is "; if(isAlived()) cout<<"alived."; else cout<<"dead."; cout<<endl;}int main( ){ Role mary("Mary", 4); Role jack("Jack", 0); mary.show(); jack.show(); return 0;}