編寫一個如下場景: 有一個英雄Hero類,私有成員,攻擊(Atx),防御(Defense),速度(Speed),生命值(Blood),以及所有的set get 方法 編寫一個 武器 Weapon 類,擁有私有成員攻擊力(Atx),以及set get 方法 編寫一個 長劍 Sword 類,繼承自武器類,拓展屬性 生命值(Blood),以及set get 方法 編寫一個 匕首Blade類,繼承自武器類,拓展屬性 速度(Speed),以及set get 方法 編寫一個 斧頭 Axe類,繼承自武器類,拓展屬性 防御力(Defense),以及set get 方法 武器Weapon類里面,要求有一個多態函數,叫做 equip 函數 英雄Hero類里面,要求有一個公開函數,equipWeapon(Weapon* w) 實現功能:英雄既可以裝備長劍,也可以裝備短劍,也可以裝備斧頭,但是要求裝備不同的武器,英雄需要獲得不同的屬性加成
#include <iostream>
#include <cstring>
#include <cstdlib>
#include <unistd.h>
#include <sstream>
#include <vector>
#include <memory>using namespace std;class Hero{
private:int Atx;int Defense;int Speed;int Blood;
public:Hero(int Atx=0,int Defense=0,int Speed=0,int Blood=0):Atx(Atx),Defense(Defense,Speed(Speed),Blood(Blood){}void setAtx(int atx) { Atx = atx; }int getAtx() const { return Atx; }void setDefense(int defense) { Defense = defense; }int getDefense() const { return Defense; }void setSpeed(int speed) { Speed = speed; }int getSpeed() const { return Speed; }void setBlood(int blood) { Blood = blood; }int getBlood() const { return Blood; }
};class Weapon{
private:int Atx;
public: Weapon(int Atx=0):Atx(Atx){}virtual ~Weapon() {}virtual void equip(Hero* h) = 0;virtual void unequip(Hero* h) = 0;void setAtx(int atx) { Atx = atx; }int getAtx() const { return Atx; }};
class Sword:public Weapon{private:int Blood;public:Sword(int Blood=50):Defense(Defense){}void equip(Hero* h) {Weapon::equip(h);h->setBlood(h->getBlood() + bloodBonus);}void setBlood(int blood) {Blood = blood; }int getBlood() const { return blood; }
};
}class Blade:public Weapon{
private:int Speed;public:Sword(int Speed=50):Defense(Defense){}void equip(Hero* h) {Weapon::equip(h);h->setSpeed(h->getSpeed() + Speed;}void setSpeed(int speed) { Speed = speed; }int getSpeed() const { return speed; }
};}
class Axe:public Weapon{
private:int Defense;public:Axe(int Defense=50):Defense(Defense){}void equip(Hero* h) {Weapon::equip(h);h->setDefense(h->getDefense() + Defenss);}void setDefenseBonus(int defense) { Denfense = defense; }int getDefense() const { return Defense; }
};
}int main(int argc,const char** argv){Hero hero;Sword sword;Blade blade;Axe axe;
}