inline:我应该把你放在哪?
泰岩网络工作室
吴 旻
痛苦了一个多小时的源代码是这样的:
Test.h头文件:
#pragma once
class CTest { public: CTest(void); ~CTest(void);
inline int GetData(); // 我想使用inline函数 }; |
Test.cpp文件
#include "Test.h"
CTest::CTest(void) { }
CTest::~CTest(void) { }
inline int CTest::GetData() { return 0; } |
编译的结果说:error LNK2019: unresolved external symbol "public: int __thiscall CTest::GetData(void)" (?GetData@CTest@@QAEHXZ)
记得以前我也用过inline,也没什么问题嘛。后来试了多次,才发现类的inline函数要么是放在类声明里,要么紧跟着类声明。两个分开放,一个.h,一个.cpp,是没有希望的!原因就是和类的展开方式有关。
呵呵,你还想知道的更多吗?我不说了。