问题描述:
学习C++时遇到一个问题:VisualStudio提供了把写在.h文件中的函数定义一键转移到.cpp中的功能,不过转移后定义前面会添加inline关键字。然而在编译时编译器会报错:无法解析的外部符号。将inline关键字去掉之后可以成功编译。这是怎么一回事呢?
解决方法:
写了inline之后,编译器可能会进行函数内联,对函数进行直接展开,即用函数定义的内容替换掉函数名。对外表现为无法实现函数调用。故导出的不应该进行内联。
问题描述:
学习C++时遇到一个问题:VisualStudio提供了把写在.h文件中的函数定义一键转移到.cpp中的功能,不过转移后定义前面会添加inline关键字。然而在编译时编译器会报错:无法解析的外部符号。将inline关键字去掉之后可以成功编译。这是怎么一回事呢?
解决方法:
写了inline之后,编译器可能会进行函数内联,对函数进行直接展开,即用函数定义的内容替换掉函数名。对外表现为无法实现函数调用。故导出的不应该进行内联。