1

我正在尝试将某个类继承到 C++ 中的两个子类中。我希望子类并排运行,但它们都继承了超类entity.hpp

#include "../entity.hpp"
class Npc : public Entity
{}

#include "../entity.hpp"
class Human : public Entity
{}

当然,当我这样做时

#include "Npc.hpp"

#include "Human.hpp"

在同一个文件中,我遇到了一个问题,因为entity.hpp它包含了两次。我将如何解决这个问题?

编辑: .cpp 文件是一个错字。

4

4 回答 4

6

要么在你的头文件中使用包含保护,要么使用#pragma once指令(它没有被广泛支持)。

于 2012-11-02T13:16:29.533 回答
2

您应该在以下位置使用包含警卫entity.hpp

#ifndef ENTITY_HPP_
#define ENTITY_HPP_

// code

#endif
于 2012-11-02T13:17:07.220 回答
1

将代码包装在头文件中,如下所示:

#ifndef ENTITY_HPP
#define ENTITY_HPP

<body of entity.hpp goes here>

#endif
于 2012-11-02T13:17:17.813 回答
0

您应该只包含“.h”或“.hpp”文件。如果您使用 Visual Studio,请添加

#pragma once

到每个头文件的顶部。如果你使用其他编译器,那么

#ifndef MY_HEADER_FILE_NAME
#define MY_HEADER_FILE_NAME

class Human : public Entity
{}

#endif
于 2012-11-02T13:18:43.817 回答