VS中inline 函数必须定义在头文件中。
/* c++语言头文件:cppFile.h */
#ifndef CPPFILE_H
#define CPPFILE_H
inline void fun();
class CA
{
public:
inline void sett();
};
#endif
// cppFile.cpp
#include "cppFile.h"
void fun()
{
}
void
CA::sett()
{
}
// main.cpp
#include "cppFile.h"
int main(int argc, char* argv[])
{
CA a;
a.sett();
fun();
return 0;
}
链接出2个错:
main.obj : error LNK2019: 无法解析的外部符号 "void __cdecl fun(void)" (?fun@@YAXXZ),该符号在函数 _main 中被引用
main.obj : error LNK2019: 无法解析的外部符号 "public: void __thiscall CA::sett(void)" (?sett@CA@@QAEXXZ),该符号在函数 _main 中被引用
inline void fun(); 改为 void fun(); 或是将其定义在 头文件里 就可以了,,
inline void sett(); 改为 void sett(); 或是将其定义在 头文件里 就可以了,,
注意这是VS里的情况,可能别的编译器没问题