当我将方法设为inline
时,编译失败并出现此错误:
未定义的符号: 'int CPositionRequestor::State(void( const (?State@CPositionRequestor@@QBEHXZ('
头文件:
class CPositionRequestor : public CActive
{
// ...
private:
TInt iState;
public:
inline TInt State() const;
}
CPP 文件:
inline TInt CPositionRequestor::State() const
{
return iState;
}
内联函数需要其定义在调用该函数的文件中可用。
因此,如果您在一个 cpp 文件中定义它并尝试在第二个 cpp 文件中调用它,则不会找到它。
您需要做的是将此定义移动到 h 文件中。(只需在类定义之后剪切并粘贴它(。
或者正如@einpoklum所注意到的,如果您不需要它,请从所有定义中删除内联。