2011-03-11 79 views
2

我一直在与我的编译器争斗太久。 通告中的问题包括重新定义,“缺失”,“之前*“等。如何包含所有内容

这似乎是获得良好答案的地方。

我如何将所有内容都包含在其他所有内容中,并且永远不必担心包含的细微之处? #DEFINE,#pragma,#include或其他任何我需要做的事情,以确保我的项目层次结构的黑暗深处的数据类型不知道什么是什么是什么?

这不是一个巨魔职位,因为这样的概念是完全不可想象的,也不会在发怒的时候发布。 我只是好奇是否存在这种可能性。处理意大利面包括可能是我必须在C++中处理的最头痛的问题,摆脱它会显着增加我的工作流程。

干杯, 布赖恩

回答

3

在实施头和夹杂物(.C,的.cpp等)Forward deceleration

+0

优秀的转发类声明正是我所需要的。为了完整起见,我在这里找到了另一个有用的例子:http://www.java2s.com/Code/Cpp/Class/Classforwarddeclaration.htm将接受这个答案whan stackoverflow让我。某种计时器不会让我接受。 – Brian 2011-03-11 01:53:44

0

好问题。我也想知道如何做到这一点。这里有一些我的技巧:

  1. 图形文件hirechary结构(哪个文件使用哪个文件)绘制原始概念图。

  2. 使用以下代码结构有助于防止重新定义。详细信息可以在这里找到。

 
#ifndef MY_CLASS 

#define MY_CLASS 
#endif 

这意味着,如果该文件已经包含了,则不会再次包含。

在每个头文件的开头
0

#ifndef __MYHEADER_H__ 
#define __MYHEADER_H__ 
到底

#endif /* __MYHEADER_H__ */ 

能够避免包含重复的头文件。如果您使用Visual stuido

,你可以把

#pragma once 

在头文件的开头。

顺便说一下,您可以使用一些静态代码检查工具来查找这些类型的问题,如lint。