3
當試圖在Visual C++(2008 express)中內聯函數時,我在仔細檢查代碼後發現鏈接錯誤,我發現的是函數I am試圖內聯拋出一個異常......如果我刪除異常拋出,鏈接錯誤消失,有人可以解釋爲什麼它是這種情況?嘗試內聯函數時在Visual C++中鏈接錯誤
int com_ximpleware::FastIntBuffer::intAt(int index){
if (index < 0 || index > size - 1) {
throw InvalidArgumentException("invalid index range in FastIntBuffer's intAt()");
}
return ((int *) al->get(index>>exp))[index & r];
}
如下所示的exaxt錯誤:
intHash.obj : error LNK2019: unresolved external symbol "public: int __thiscall com_ximpleware::FastIntBuffer::intAt(int)" ([email protected]@[email protected]@[email protected]) referenced in function [email protected]@[email protected]@[email protected]$0
1>C:\new_cvs\cpp_test1\Debug\cpp_test1.exe : fatal error LNK1120: 1 unresolved externals
一兩件事,這個函數被調用別的正常,沒有被列入該函數的調用部分。
當你將它嵌入時,是否將它移動到頭文件中? – 2010-03-30 02:58:20
我把定義(即實現)在標題中,並沒有問題...我必須將其移動到標題以內聯它嗎?我以爲我可以聲明它是一個內聯函數,不是嗎? – 2010-03-30 03:21:44
無論它在哪裏調用,它都必須是可見的,所以通常它必須位於頭文件中。 – Darryl 2010-03-30 03:33:48