C++ 在.h文件中包含头文件和在.cpp文件中包含头文件的原则

1、 第一个原则:如果可以不包含头文件,那就不要包含了,这时候前置声明可以解决问题。如果使用的仅仅是一个类的指针,没有使用这个类的具体对象(非指针),也没有访问到类的具体成员,那么前置声明就可以了。因为指针这一数据类型的大小是特定的,编译器可以获知(C++编译器自上而下编译源文件的时候,对每一个数据的定义,总是需要知道定义的数据的类型的大小)

具体理解如下:
1、在cpp文件中包含.h文件,要么你要用到这个头文件中的函数或者类,要么就是实现这个头文件;
2、h —就是为了放一堆声明所产生的东西。
如果.h被重复包含多次,那么则会被报重定义。
3、#include尽量写到cpp文件里。两个文件在.h文件里相互include,就会产生编译错误,而两个文件在.c文件互相include,就不会有该问题,因此在.h文件include就要避免互相包含的问题,而.cpp文件就不需要考虑
4、在 .h 里面 include 的好处是:
如果很多.c,.cpp文件,都包含一批头文件,如果复制很容易遗漏,
如果输入,很容易出错。如果全部在一个.h, include 那么每个.c,.cpp文件只需要一个#include 语句,这样不仅输入量减少,而且代码也美观多了,代码也主次分明了。
5、 在 .h 里面 include 的缺点是:
可能会包含完全不需要的头文件,增加编译工作量
6、如果a.c包含了头文件a.h,a.h包含了头文件b.h,b.c也包含了b.h,那么当b.h发生改变时,a.c和b.c都会重新编译,也就是所有包含了b.h的都会重新编译,无论是直接包含,还是间接包含

展开阅读全文

没有更多推荐了,返回首页