CPP头文件引用混乱问题
最近写一个C++项目,因为头文件循环引用增加了很多工作量。
感觉这个问题更偏向于工程性,也就是怎么设计代码结构,让各个文件是又层次的而不是混乱的互相引用。
比如说:
A_class.h定义了一些基础类,然后A_transform.h引用A_class.h并定义将这个基础类与protobuf进行互相转化的工具函数,然后A_control.cpp引用前面两个头文件就可以实现逻辑清晰的代码结构。
B_class.h定义了基础类和转换函数,然后被B_control.cpp引用,这样也可以。
但是我之前写的代码结构是A_class.h定义了类但是引用了A_transform.h,A_transform.h定义了转换函数但是又引用了A_class.h,这样互相引用就出错了。
常见的解决方案有:
当使用类型时只需要引用或者指针类型时,通过前向声明来解决就可。因为它们的存储空间可以在编译期间确定。
或者调整代码结构使得他们层次清晰,比如把基础类放在一块,把转换函数放在一块,让基础类不依赖于转换函数所在的头文件,这样就不会有交叉引用。