内联函数、模板、头文件杂记
1)内联有可能是目标代码量或增或减,这取决于被内联的函数的大小。
2)内联那些包含循环或switch语句的函数是得不偿失的。
3)虚函数和递归函数一般不能声明为内联函数。因为虚函数在继承体系中必须取地址,及虚函数指针vptr。内联函数无内存地址。
4)析构函数一般包含隐藏的代码,一般不可内联。即慎重再类定义的.h文件中定义析构函数。
5)函数模板、类模板的声明和定义必须都放到头文件中。否则连接出现错误。
6)全局函数的定义不可放在头文件中,否则多个实现文件包含该头文件时链接出现多重定义错误。可将全局函数声明为内联函数,这样就可以放在头文件中定义函数体。