相关疑难解决方法(0)

C++内联类方法导致未定义的引用

当我尝试内联我的一个类的方法时,我收到编译器错误.当我拿走"内联"关键字时它会起作用.

这是一个简化的例子:

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)

如果我带走"内联",一切都很好.是什么导致了这个问题?(我应该如何内联类方法?是否可能?)

谢谢.

c++ inline

46
推荐指数
2
解决办法
2万
查看次数

标签 统计

c++ ×1

inline ×1