【代码规范】头文件中应优先使用前置类型声明

尽量在头文件中使用前置类型声明,在实现中再实际引用。

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 的文件无需重新编译。

image

image

2. 头文件的“接口纯度”更高

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

posted @ 2025-07-13 05:22  丘狸尾  阅读(13)  评论(0)    收藏  举报