即使在命名空间之间,包含保护也应该是唯一的吗?
我在两个命名空间(例如 A 和 B)中使用相同的类名。在声明具有不同命名空间的类时,包含保护是否应该是唯一的? 我的意思是不能有两个文件名 AFile.h…
多个文件中的多次包含
我正在制作一个小游戏。 在BattleRecord.h中: #ifndef _CHARACTER_H_ #define _CHARACTER_H_ #include "Character.h" #endif class BattleRecord { p…
C++ 的有效用途除此之外,还包括守卫,那么,包括守卫?
这个问题是讨论 C++ 包含防护的命名约定的几个问题之一。提出这个问题的人认为这个命名约定: #ifndef FOO_H #define FOO_H // ... #endif 单独来看有…
如何实现标头防护,以及在它们之间可以放置什么?
在 LearnCpp.com | 1.10 — 初步了解预处理器。在头保护下,有这些代码片段: add.h: #include "mymath.h" int add(int x, int y) subtract.h: #inclu…
C++/SDL 双重包含问题
我从编译器中收到此错误: 1>Linking... 1>main.obj : error LNK2005: "int g_win_flags" (?g_win_flags@@3HA) already defined in init.obj 1>…
在 eclipse CDT 中自定义包含防护
有没有办法在 Eclipse CDT 中为类生成模板自定义包含守卫的格式?当前的格式是 _H,但我想要的是类似 ___H 的格式。并不是说我希望在我自己的项目中的…
#endif 之后的标记合法吗?
我目前执行以下操作,编译器(MSVC2008 / 以及 2010)不会抱怨它,但我不确定这是否是一个坏主意: #ifndef FOO_H_ #define FOO_H_ // note, FOO_H_ i…
在 C++ ,“_MOVE_H”有什么特别之处?
我有一个像这样的 C++ 文件 #ifndef _MOVE_H #define _MOVE_H class Move { int x, y public: Move(int initX = 0, int initY = 0) : x(initX), y(ini…
循环 #include 的标头防护问题
我正在制作一个小型C++框架,其中包含许多.h和.cpp。 我创建了一个通用包含,其中包含我所有的 .h 文件,例如: framework.h #include "A.h" #include…
关于条件编译 (ifndef) 的快速问题
这很可能是一个非常愚蠢的问题,但我需要确定。我在头文件中得到了一个类声明,例如。 #ifndef file_H #define file_H class ex{ private: public: } …