我有一个名为Item.cpp的课程:
class Item{
public:
int damage;
Item(int damage);
int GetDamage();
};
Item::Item(int damage)
{
this->damage = damage;
}
int Item::GetDamage()
{
return damage;
}
我希望文件Sword.cpp继承Item.cpp,如下所示:
class Sword: public Item {
};
我收到以下错误:
error not a class name or struct
。我很困惑因为Item显然是一个类,所以为什么我不允许Sword继承Item?
答案 0 :(得分:1)
您需要Sword
来包含Item
的声明。通常在C ++中,您将拥有带声明的.h(标题)文件,然后是带源的.cpp文件。
.h文件将包含在需要它们的任何内容中; .cpp文件将被提供给编译器(并将拉入.h文件)。
<强> Item.h 强>
#pragma once
class Item {
public:
int damage;
Item(int damage);
int GetDamage();
};
<强> Item.cpp 强>
#include <Item.h>
Item::Item(int damage) {
this->damage = damage;
}
int Item::GetDamage() {
return damage;
}
<强> Sword.h 强>
#pragma once
#include <Item.h>
class Sword: public Item {
};
<强> Sword.cpp 强>
#include <Sword.h>
(到目前为止,只要您提供的代码为空)
然后你会编译Item.cpp
和Sword.cpp
。