首页 > 编程语言 > 详细

【C++填坑】到底把#include "xx.h"写在哪里?

时间:2019-12-26 12:15:23      阅读:107      评论:0      收藏:0      [点我收藏+]

其实最简单,最粗暴的方式就是将#include "xx.h"写到.h文件中。

例如:
??我想要在A文件中引入B文件提供的方法函数或对象。那么我就将#include "B.h"写在 A.h 里。毕竟就算你 A.cpp 文件要用B里的方法,你必然会先将 #include "A.h" 放在 A.cpp 里。
??那么此时在预编译阶段,进行头文件展开,就会将代码引入。


上述方法并不推荐使用,例如如果头文件相互引用,就是 A.h 要进入 B.h ,B.h 要进入 A.h 。这样展开的时候就会报错了。

所以一般我们在写的时候:

  • 当 .h 文件中的声明用到了 T* t;(指针类型)那么我们只需要在.h前方加入 class T; 声明一下即可。 没有必要 #include "T.h"。
  • 当 .h 中用到了 T t;(非指针类型)此时可以在 .h 中 #include "T.h"。
  • 至于其他的方法函数内需要用到的头文件,当然都是在cpp文件中声明了。

至于为什么这样分开,原因在于,指针类型的大小就是固定的4字节,但非指针类型的大小确是不固定的,所以需要提前引入。

另一个原因在与C++接口设计,你写的.h文件作为一个模块给别人用的时候,并不需要把没有用的其他.h文件提供给别人。这样也优化了编译过程。

【C++填坑】到底把#include "xx.h"写在哪里?

原文:https://www.cnblogs.com/LampsAsarum/p/12101078.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!