補充程序之遊戲系列— 1遊戲中的角色類 (2)



*Copyright(c) 2016.煙臺大學計算機與控制工程學院
*ALL rights  reserved.
  *文件名稱:main.cpp
   *作者:孫亞茹
*完成日期:2016年6月7日
*問題描述:在(1)的基礎上,設計構造函數,及析構函數。
*//

#include <iostream>

using namespace std;

class Role
{
public:
    Role(string nam,int b):name(nam),blood(b) {};
    ~Role();
    void show();
    void attack();
    void eat(int n);
    void beAttack();
    bool isLife();
private:
    string name;
    int blood;
    bool life;
};
bool Role::isLife()
{
    if(blood>0)
        return true;
    else
        return false;
}
Role::~Role()
{
    cout<<name<<"退出江湖..."<<endl;
}
void Role::attack()
{
    if(isLife())
    {
        blood++;
    }
}
void Role::eat(int n)
{
    if(isLife())
    {
        blood+=n;
    }
}
void Role::beAttack()
{
    if(isLife())
    {
        blood--;
    }
}
void Role::show()
{
    if(isLife())
        cout<<name<<"還有"<<blood<<"滴血"<<endl;
    else
        cout<<name<<"已經死了"<<endl;
}
int main()
{
    Role mary("Mary",4);
    Role jack("Jack",1);
    mary.show();
    jack.show();
    int n;
    while(1)
    {
        cout<<" 1 maryAttack  2 maryBeAttack  3 maryEat   4 jackAttack   5 jack,BeAttck   6 jackEat"<<endl;
        cout<<"請您選擇相應的動作:"<<endl;
        cin>>n;
        if(n==1)
        {
            mary.attack();
            mary.show();
        }

        else if(n==2)
        {

            mary.beAttack();
            mary.show();
        }
        else if(n==3)
        {
            mary.eat(2);
            mary.show();
        }
        else if(n==4)
        {
            jack.attack();
            jack.show();
        }
        else if(n==5)
        {

            jack.beAttack();
            jack.show();
        }
        else if(n==6)
        {
            jack.eat(2);
            jack.show();
        }
        else
            break;
    }
    return 0;
}


總結:

        溫故而知新,析構函數的析構符號要寫在兩個冒號後面。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章