C 包括多个文件中的文件

C++ including a file in multiple files

本文关键字:文件 包括多      更新时间:2023-10-16

我正在尝试将某个类继承为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文件是错别字。

用途要么在标题中包括后卫,要么是#pragma once指令(不受广泛支持)。

您应该使用 entity.hpp中的后卫:

#ifndef ENTITY_HPP_
#define ENTITY_HPP_
// code
#endif

将代码包装在标题文件中:

#ifndef ENTITY_HPP
#define ENTITY_HPP
<body of entity.hpp goes here>
#endif

您应该仅包括" .h"或" .hpp"文件。如果您使用Visual Studio,请添加

#pragma once

到每个标头文件的顶部。如果您使用其他编译器,则

#ifndef MY_HEADER_FILE_NAME
#define MY_HEADER_FILE_NAME
class Human : public Entity
{}
#endif