句柄类,也就是handle class,可减少头文件的编译依赖关系,让文件间的编译更加独立。
在一些大型的系统中,编译源文件的代价往往非常大,特别是一些核心文件,往往很小的代码改动就能引起整个系统的重新编译,由于系统存在诸多的包含依赖关系,因此编译的过程中会先去检测外部包含文件是否改动,而外部包含文件如果仍然存在外部包含,那编译器就会继续检测,直到检测不到为止,这个过程往往非常的漫长,因此,编译的低效率可以直接导致系统开发的低效率。
想改善这种状况,就要降低源文件的包含依赖性,而想降低源文件依赖性,最直接的方法就是减少头文件的包含,也就是在头文件中减少#include的使用,而改用类前置声明,这要求开发者在类中不能定义实体,只能定义指针,而如果要用到类中方法的话,则可以在实现文件中,这样重编译的代价仅仅是一个文件而已。