以下是#include来自Google的C++风格指南的部分:
如果您依赖bar.h中的符号,请不要指望您包含foo.h这个(当前)包含bar.h:自己包含bar.h,除非foo.h明确表明其意图为您提供bar.h的符号.
但是,相关头中存在的任何包含不需要再次包含在相关的cc中(即,foo.cc可以依赖于foo.h的包含).
当我读到这篇文章时,这些句子似乎是矛盾的.他们对我说:
foo.cc需要的东西bar.h,它必须包括bar.h.foo.cc需要填充bar.h,foo.cc包含foo.h和foo.h包含bar.h,则foo.cc不需要包含bar.h.为什么这些句子不相矛盾?
第二段讨论了一个特例:.cc实现相应.h文件中声明的函数的文件.由于.cc和.h文件旨在密切相关并保持串联(通常由同一个程序员),因此该.cc文件可以取决于其相关头文件中的内容.
第一段是讨论包含头文件的其他文件.
所以foo.cc可以取决于包含foo.h,但bar.cc应该包括foo.h和baz.h.
| 归档时间: |
|
| 查看次数: |
121 次 |
| 最近记录: |