【代码规范】头文件中应优先使用前置类型声明
尽量在头文件中使用前置类型声明,在实现中再实际引用。
1. 头文件的“传递依赖”被阻断了,极大的加快了重编译速度
如果在 A.h 中直接 #include "B.h",那么所有包含 A.h 的文件(可能是几十个甚至上百个 .h 或 .cpp)都会间接包含 B.h。此时:
- 一旦
B.h有任何修改(哪怕只是加个注释),所有依赖A.h的文件都会被重新编译,编译时间会成倍数增加。 - 而如果
A.h只用前置声明class B;,B.h的修改只会影响直接包含它的.cpp文件(比如A.cpp),其他依赖A.h的文件无需重新编译。


2. 头文件的“接口纯度”更高
头文件的核心作用是暴露接口,而非展示依赖细节。比如 A.h 中声明 void func(B* b);,用户只需要知道 B 是一个类即可,无需看到 B 的成员变量、私有方法等实现细节。
用前置声明能让头文件更简洁,减少用户对无关类型的“被动依赖”。如果直接包含 B.h,用户的代码会被迫接受 B 的所有依赖(比如 B 又包含了 C.h、D.h 等),导致依赖关系失控。

浙公网安备 33010602011771号