通常内联函数的定义会被放到头文件中,这样可令编译器将其在调用处内联展开。然而,实现代码应完全放到 .cc 文件中,.h 文件中不应该出现太多实现代码,除非这样做在可读性和效率上有明显优势。
对于定义比较短小、逻辑比较简单的内联函数,其实现代码可以放在 .h 文件中。(例如存取函数的实现理所当然都放在类定义中)出于实现和调用的方便,较复杂的内联函数也可以放到 .h 文件中,但是这样会使头文件显得笨重,因此可以将其分离到单独的 -inl.h 中。这样即把实现和类定义分离开来,当需要时包含实现所在的 -inl.h 即可。-inl.h 文件还可用于函数模板的定义,从而使得模板定义可读性增强。需要注意的是,-inl.h 和其他头文件一样,也需要 #define 保护。而复杂的内联函数的定义,应放在 -inl.h 文件中。







网友评论