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)" ([email protected]@@QAEHXZ)
記得以前我也用過inline,也沒什麼問題嘛。後來試了多次,才發現類的inline函數要麼是放在類聲明裡,要麼緊跟着類聲明。兩個分開放,一個.h,一個.cpp,是沒有希望的!原因就是和類的展開方式有關。
呵呵,你還想知道的更多嗎?我不說了。