当我尝试内联我的一个类的方法时,我收到编译器错误.当我拿走"内联"关键字时它会起作用.
这是一个简化的例子:
main.cpp中:
#include "my_class.h"
int main() {
MyClass c;
c.TestMethod();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
my_class.h:
class MyClass {
public:
void TestMethod();
};
Run Code Online (Sandbox Code Playgroud)
my_class.cpp:
#include "my_class.h"
inline void MyClass::TestMethod() {
}
Run Code Online (Sandbox Code Playgroud)
我尝试编译:
g++ main.cpp my_class.cpp
Run Code Online (Sandbox Code Playgroud)
我收到错误:
main.cpp:(.text+0xd): undefined reference to `MyClass::TestMethod()'
Run Code Online (Sandbox Code Playgroud)
如果我带走"内联",一切都很好.是什么导致了这个问题?(我应该如何内联类方法?是否可能?)
谢谢.