一个头文件可以包含另一头文件吗 (一个头文件可以被多个实现文件包含)
本文目录导航:
- 一个头文件可以包含另一头文件吗?
- c++ A头文件包含B头文件,B头文件包含A头文件,老是出现重复包含,怎么解决!!
- C++中include其他头文件时何时应放在.h文件中,何时应放在.cpp文件中?
一个头文件可以包含另一头文件吗?
这是个风格问题, 因此有不少的争论。
很多人认为“嵌套包含文件”应该避免:盛名远播的“印第安山风格指南”(Indian Hill Style Guide) 对此嗤之以鼻; 它让相关定义更难找到; 如果一个文件被包含了两次, 它会导致重复定义错误; 同时他会令 makefile 的人工维护十分困难。
另一方面, 它使模块化使用头文件成为一种可能 (一个头文件可以包含它所需要的一切, 而不是让每个源文件都包含需要的头文件); 类似 grep 的工具 (或 tags 文件) 使搜索定义十分容易, 无论它在哪里; 一种流行的头文件定义技巧是:#ifndef HFILENAME_USED#define HFILENAME_USED... 头文件内容 ...#endif每一个头文件都使用了一个独一无二的宏名。
这令头文件可自识别,以便可以安全的多次包含; 而自动 Makefile 维护工具 (无论如何, 在大型项目中都是必不可少的) 可以很容易的处理嵌套包含文件的依赖问题。

c++ A头文件包含B头文件,B头文件包含A头文件,老是出现重复包含,怎么解决!!
在头文件上加这个#ifndef _a_H#define _a_H.........//原头文件内容#endif希望能帮到楼主
C++中include其他头文件时何时应放在.h文件中,何时应放在.cpp文件中?
.h是 头文件 是源文件c++中。
通常 将struct class #define typedef function 等的定义放到头文件中而将 成员声明 和 function实现 类实现 放入cpp中h和cpp中同时可以使用include包含头文件,但是我们通常 有这个习惯也就是尽量不要在。
h中include非必须的其他。
h也就是说当.h中的 定义 内容 用到了T* t那么我们 没有必要 #include t.h之需要在。
h中 class T;声明一下 即可。
当 。
h中用到了T t;也就是 非指针时,此时可以在.h中 include t.h以上均是书写规范问题。
当然所有的.h都include进来也不会编译错。
至于为什么有这个书写规范 就需要 你再仔细理解 一下c++接口设计了。
也就是说 如果你的。
h作为一个模块给别人使用时 没有必要 把 没有用的。
h同时提供给别人。
至于编译速度的话 ide有优化的。
你没有用到的东西他不会编译进去的。