我目前不知道如何为我的 Weapon 类实现一个函数来重新加载。
我的程序应该做的(出于学习目的)是有一个抽象的 Weapon 类,它有两个派生自它的类,Sword 和 Crossbow。Sword 类按预期工作,因此需要玩弄。但是,Crossbow 类需要检测它是否已加载,如果未加载,则将加载它并触发它。
例如,这是我的老师给班级的演示输出:(这就是它应该看起来的样子)
弩造成15点伤害。
剑造成10点伤害。
弩没装!
弩造成15点伤害。
乐观地说,我希望它看起来相似。
请,没有直接的答案。这是家庭作业,我真的很想学习这个。我正在寻找正确方向的点。
武器.h
#include <iostream>
using namespace std;
class Weapon
{
public:
Weapon(int damage = 0);
virtual void Attack() const = 0;
protected:
int m_Damage;
};
Weapon::Weapon(int damage) : m_Damage(damage)
{}
class Sword : public Weapon
{
public:
Sword(int damage = 10);
virtual void Attack() const;
};
Sword::Sword(int damage): Weapon(damage)
{}
void Sword::Attack() const
{
cout << "The sword hits for " << m_Damage << " points of damage" << endl;
}
class Crossbow : public Weapon
{
public:
Crossbow(int damage = 20);
virtual void Attack() const;
void Reload() const;
};
Crossbow::Crossbow(int damage) : Weapon(damage)
{}
void Crossbow::Attack() const
{
cout << "The crossbow hits for " << m_Damage << " points of damage" << endl;
}
void Crossbow::Reload() const
{
cout << "Crossbow not loaded! Please reload" << endl;
}