C ++包括多个文件中的文件

时间:2012-11-02 13:14:26

标签: c++ inheritance include c-preprocessor

我正在尝试将某个类继承到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 个答案:

答案 0 :(得分:6)

要么在标题中使用包含警戒,要么使用#pragma once指令(不受广泛支持)。

答案 1 :(得分:2)

您应该在entity.hpp中使用include guards

#ifndef ENTITY_HPP_
#define ENTITY_HPP_

// code

#endif

答案 2 :(得分:1)

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

#ifndef ENTITY_HPP
#define ENTITY_HPP

<body of entity.hpp goes here>

#endif

答案 3 :(得分:0)

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

#pragma once

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

#ifndef MY_HEADER_FILE_NAME
#define MY_HEADER_FILE_NAME

class Human : public Entity
{}

#endif