为什么标头中包含C ++内联函数?
注意:这不是关于如何使用内联函数或它们如何工作的问题,更多的是为什么要按原样完成它们。 类成员函数的声明不需要将函数定义为inline,而只是函数的实际实现。例如,在头文件中: struct foo{ void bar(); // no need to define this as inline } 那么,为什么一类的内联函数的实现必须要在头文件?为什么不能将内联函数放在.cpp文件中?如果我尝试将内联定义放入.cpp文件中,则会出现以下错误: error LNK2019: unresolved external symbol "public: void __thiscall foo::bar(void)" (?bar@foo@@QAEXXZ) referenced in function _main 1>C:\Users\Me\Documents\Visual Studio 2012\Projects\inline\Debug\inline.exe : fatal error LNK1120: 1 unresolved externals