类文件继承不是类

时间:2014-02-27 04:09:15

标签: c++ inheritance

我有一个名为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?

1 个答案:

答案 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.cppSword.cpp