当我#include
一个头文件,并且我还需要其他已经从第一个文件#included的文件时,我应该依赖第一个#include
还是{i} #include
他们?
我知道它无论如何都会奏效,但我想知道什么是最佳做法。
如果我不依赖,这意味着我可以在我的文件中列出几十个#includes。它有意义吗?
答案 0 :(得分:5)
好吧,如果其他人正在维护第一个头文件,那么不,你不能依赖它!
正是出于这个原因,我更喜欢在源文件中明确包含所有依赖项(即声明直接使用的符号的标题)。不过,我怀疑你会找到一个真正的最佳实践。每种方法都有利弊。
但是一旦你选择了一种方法,请一致地应用它!没有什么比一个不同包含风格的混搭项目更糟糕了。
答案 1 :(得分:2)
这取决于您设计的政策。我总是遵循以下一个:
在标头中,始终包含使用干净的.c
/ .cpp
文件编译该标头所需的任何内容。
在实施文件中,始终包含直接使用的所有内容。
答案 2 :(得分:1)
您应该只包含课程的基本头文件。但即使您碰巧包含了您的文件,您的头文件也会包含gaurds,这些gaurds应该来自多个包含内容。
答案 3 :(得分:1)
当我#include一个头文件时,我 还需要其他文件 #included来自第一个,我应该依赖第一个#include还是我应该 #include所有这些?
通常不会,因为头文件拖入的头文件通常是实现细节。
但是,实际上不可能编写包含所有平台所有必需标头的代码。特别是在C ++中,标准库头可以在标准库的其他头文件中自由拖动。例如,您的代码可能会编译,因为您不知道<iostream>
编译器拖拽<string>
。
因此,合理地包括所有相关标题是合理的,因为这意味着,这样做的不合理努力是不合理的。 : - )
干杯&amp;第h。,