将inline、template声明和定义在头文件中

  • 如果要在要在源文件(a.cpp)中内联的展开一个函数(fun),则该源文件(a.cpp)中必须包含此函数(fun)的定义。如果要在多个文件中内联的展开fun,则在所有的源文件中都必须包含fun的定义。只有将inline函数定义在头文件中,然后在需要内联展开此函数的文件中#include头文件才能实现。
  • 同理,要实例化模板,首先要知道模板的完整定义,要在多个文件中使用模板,就需要将其定义在头文件中。