【发布时间】:2012-03-20 20:26:31
【问题描述】:
内联成员函数时遇到问题。我的代码如下:
Main.cpp
#include "Foo.h"
int _tmain(int argc, _TCHAR* argv[])
{
Foo foo;
int a = foo.myInlinedFunc(2);
}
Foo.h
class Foo
{
public:
Foo(void);
~Foo(void);
inline int myInlinedFunc(int value);
};
Foo.cpp
#include "Foo.h"
Foo::Foo(void)
{
}
Foo::~Foo(void)
{
}
int Foo::myInlinedFunc(int value)
{
return value * value;
}
我收到以下错误:
Tester.obj:错误 LNK2019:函数 _wmain 中引用的未解析外部符号“public:int __thiscall Foo::myInlinedFunc(int)”(?myInlinedFunc@Foo@@QAEHH@Z) 1>E:\Debug\Tester.exe : 致命错误 LNK1120: 1 unresolved externals
我已经在 google 上搜索了答案,但唯一显示的答案告诉我应该将 inline 关键字放在它已经存在的头文件中。
【问题讨论】:
-
通过使用
inline,您承诺在同一个翻译单元中提供定义,但未能兑现承诺。你期待什么?