我正在尝试将某个类继承到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文件是拼写错误。
答案 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