问题标签 [include-guards]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
610 浏览

c++ - 包含问题

我有一个包含模式如下:

但是,这会导致错误“'Class1_namespace' 没有命名类型。”</p>

这个错误是由我的包含物的排序引起的吗?

有哪些可能的解决方案?我对解决我的问题的前向声明持怀疑态度。

0 投票
4 回答
749 浏览

c++ - #endif 之后的令牌是否合法?

我目前执行以下操作,编译器(MSVC2008 / 以及 2010)没有抱怨它,但我不确定这是否是一个坏主意:

我以前总是这样写,#endif // FOO_H_但我发现自己今天没有这样做,并认为这很奇怪,因为显然我已经有一段时间没有使用评论方法了。

这是我应该回顾所有标题并修复(它是一个跨平台应用程序)的坏习惯,还是可以保持原样?

0 投票
2 回答
3646 浏览

eclipse - Eclipse-CDT:在自动生成的包含防护中使用命名空间

使用 .hpp/.cpp 模板创建新类时,是否可以(以及如何)在Eclipse CDT中以自动生成的包含保护的名称添加名称空间?

对我来说,Eclipse 很好地生成了一个带有命名空间的新类,但是包含保护不包含命名空间,所以如果同一个头文件在两个不同的目录中存在两次,则只能包含一个。

在我的例子中,命名空间的名称、Eclipse 项目名称和源目录的名称都是相同的,所以这些可以作为包含保护的前缀的替代方案。

0 投票
3 回答
3266 浏览

eclipse-cdt - 在 eclipse CDT 中自定义包含防护

有没有办法为类生成模板自定义 eclipse CDT 中包含保护的格式?当前格式是<Class Name>_H,但我想要的是<namespace>_<namespace>_<class name>_H. 并不是说我希望在我自己的项目中的不同名称空间中有同名的类,但如果出现这种情况,我不想担心它。

0 投票
4 回答
672 浏览

c++ - C++/SDL 双重包含问题

我从编译器收到此错误:

看起来 g_win_flags 和 g_screen 被包含了两次,但我不明白为什么。这是来源:

主文件

十二月

初始化.h

初始化文件

有人可以帮忙吗?在此先感谢,祝您有美好的一天:)

0 投票
3 回答
497 浏览

c++ - 多个类中使用的函数

我之前问过这个问题,但我使用了我被告知的内容来尝试让我的程序正常工作:

可能是因为我是 C++ 的菜鸟,但#ifndef由于我的类包含相同的 .h 文件的问题,我无法使用。sh 和 th 和 main.cpp 都需要 rh 中定义的结构

我有

在我的主 cpp 文件中

在我的每个 sh 和 th 文件中,都有一个

同样,但是编译器在 rh 文件中给了我关于expected nested-name-specifier before "namespace", unqualified id before using namespace std;,的错误,expected ';' before "namespace"即使我在 rh 文件中的所有内容是:

主要cpp没有导入某些库或其他东西引起的问题吗?我如何解决它?

0 投票
2 回答
7127 浏览

c++ - C ++循环包含问题

我有这个文件logger.hpp:

而这个文件 event.hpp

出色地。在 logger.hpp 中包含 event.hpp,在 event.hpp 中包含 logger.hpp。

  • 我需要包含 event.hpp,因为在 logger.hpp 我需要定义运算符。

  • 我需要包含 logger.hpp,因为在 event.hpp 中,要在 Event 类中定义友谊。

这当然是一个循环递归

我试过这个:

1) 在 logger.hpp 中:

不工作。编译器告诉我,在 event.hpp 中有一个未被识别的类型,称为 Logger(他当然是对的):

ISO C++ 禁止声明没有类型的“记录器”

编译器向我指出存在友谊声明的行(在 event.hpp 中)。

2) 在 event.hpp 中:

不工作。编译器告诉我,在 logger.hpp 中有一个未被识别的类型,称为 Event(同样,出于显而易见的原因,它是正确的):

ISO C++ 禁止声明没有类型的“事件”

编译器向我指出存在运算符声明的行(在 logger.hpp 中)。

嗯……不知道该怎么面对?我尝试了一切,我到处提出声明,但是,当然,它们没有任何帮助。这个怎么解决???(我想存在一个最佳实践,我希望这样更好:))。

谢谢你。

0 投票
5 回答
81045 浏览

c++ - C++ 和 C 中的标头保护

LearnCpp.com | 1.10 — 初步了解预处理器。在Header guards下,有这些代码片段:

添加.h:

减去.h:

主.cpp:

在实现header guard时,提到如下:

  • 什么可以在这里声明?而且,应该int main()#endif吗?
  • 添加_H约定还是必须做的事情?

谢谢。

0 投票
4 回答
3618 浏览

c++ - C++ - 如何避免此标头出现两次?

在: http: //www.learncpp.com/cpp-tutorial/110-a-first-look-at-the-preprocessor/

在 Header guards 下,有这些代码片段:

添加.h:

减去.h:

主.cpp:

如何避免#include "mymath.h"出现两次main.cpp

谢谢。

0 投票
3 回答
3386 浏览

c++ - 多重定义和命名空间

这是在命名空间中拥有我将在多个文件中#include 的函数的正确方法吗?

测试.h