内联函数、模板、头文件杂记(转)

原文地址: http://www.cnblogs.com/younes/archive/2010/05/12/1733756.html

1)内联有可能是目标代码量或增或减,这取决于被内联的函数的大小。

2)内联那些包含循环或switch语句的函数是得不偿失的。

3)虚函数和递归函数一般不能声明为内联函数。因为虚函数在继承体系中必须取地址,及虚函数指针vptr。内联函数无内存地址。

4)析构函数一般包含隐藏的代码,一般不可内联。即慎重再类定义的.h文件中定义析构函数。

 

5)函数模板、类模板的声明和定义必须都放到头文件中。否则连接出现错误。

 

6)全局函数的定义不可放在头文件中,否则多个实现文件包含该头文件时链接出现多重定义错误。可将全局函数声明为内联函数,这样就可以放在头文件中定义函数体。

原文地址:https://www.cnblogs.com/welkinwalker/p/2249727.html