Im пытается использовать Наследование через несколько файлов заголовков и cpp для текстовой игры, которую я пишу.Наследование (через файлы) не удается найти класс?
У меня есть базовый класс Оружия. Который находится в файле Weapon.h
class Weapon
{
public:
string Name;
int Damage;
float ChanceToHit;
int ExtraDamage;
int Result;
int Array[3];
int Attack(int, int, string);
};
Я затем пытается унаследовать сформировать базовый класс Weapon.h к классу лук и меч. Я уверен, что включаю файл правильно, но когда я пытаюсь скомпилировать, я получаю сообщение об ошибке "error: expected class name class Blade: public Weapon" Такая же ошибка для класса Bow.
#include "Weapon.h"
#include "Crossbow.h"
using namespace std;
class Bow : public Weapon
{
public:
string Type = "Ranged";
bool loaded;
protected:
Bow();
};
#include "Weapon.h"
class Blade : public Weapon
{
private:
string Type = "Melee";
protected:
void Draw();
};
Кто-нибудь знает, почему это происходит? Google не подходит ни к чему полезному. Благодаря
MCVE (я думаю)
//In Base.h
class Base
{
public:
int function();
private:
};
//In Base.cpp
int Base::function()
{
randomshit
return 0;
}
//In Inherit.h
#include "Base.h"
class Inherit : public Base
{
public:
int function():
private:
};
Getting error: "expected class name class Bow : public Weapon"
EDIT: Оказывается, мне нужно, чтобы включить "#pragma раз" и решить практически все. Спасибо за помощь, ребята!
В какой строке вы видите ошибку? Что находится в 'crossbow.h'? –
Вероятно, круглая зависимость. Но почему вы '#include" CrossBow.h "? – juanchopanza
@MichaelWalz Я получаю сообщение об ошибке в строке «class Bow», то же самое для класса Blade. Для Арбалета я наследую класс Bow.Я просто включил в нее #include, потому что я не мог придумать ничего другого, что могло бы решить мою проблему. Я также получаю эту проблему в файле Crossbow.h. По какой-то причине я не получаю проблему, когда наследую в том же файле. – Matt