c++头文件包含问题

c/c++的头文件是一种很落后的编译机制,大量程序员在这上面浪费了无数生命

理论上,只要两个类之间不存在互相包含的关系,那么编辑就应该能通过

但是头文件机制却给我们造成了无数的麻烦,因为我们还要避免头文件之间的互相包含

比如现在有两个类A,B,分别在a.h b.h里面

如果现在AB都要依赖对方,那么a.h,b.h互相包含肯定是不行的,这个时候只有使用前置声明,但是如果作为类成员使用了对方声明的一个struct呢?

那么只好把这个共用的类提到另一个头文件c.h里面,大家再去包含c.h,这样就产生了一个新的文件

但是如果有更多的类,更多的头文件呢?结果是文件越来越多,改动的代价也越来越大,不胜其烦

这样当然也有一个好处,就是让你的程序的结构跟h文件保持一致性,不过这点好处不能抵消它带来的无数麻烦

原文地址:https://www.cnblogs.com/mightofcode/p/2984279.html