我和我的编译器争吵太久了。 循环问题包括,重新定义,“缺失”;之前*“等等。
这似乎是获得良好答案的地方。
如何将所有内容都包含在其他内容中,而且永远不必再担心包含内容的微妙之处? 我需要做什么组合#DEFINE,#pragma,#include或其他什么来确保我项目层次结构阴暗深处的数据类型能够毫不费力地知道其他什么东西?
这不是一个巨魔职位,因为这样的概念是完全不可想象的,也不是在生气的时候发布的。 我只是好奇这种可能性是否存在。处理意大利面包可能是我在C ++中必须解决的最大麻烦,摆脱它会大大增加我的工作流程。
干杯, 布赖恩
答案 0 :(得分:3)
Forward deceleration在实现的标题和包含中(.c,.cpp等)。
答案 1 :(得分:0)
好问题。我也想知道如何做到这一点。这是我的一些技巧:
确定文件的hirechary结构(哪个文件使用哪个文件)来绘制原始概念图。
使用以下代码结构有助于防止重新定义。细节可以在这里找到。
#ifndef MY_CLASS #define MY_CLASS #endif
这意味着如果文件已经包含在内,则不会再包含该文件。
答案 2 :(得分:0)
在每个头文件的开头,
#ifndef __MYHEADER_H__
#define __MYHEADER_H__
最后,
#endif /* __MYHEADER_H__ */
可以避免重复包含头文件。
如果你使用visual stuido,你可以放
#pragma once
在头文件的开头。
顺便说一句,您可以使用一些静态代码检查工具来查找这些类型的问题,例如lint。