我正在嘗試使用特定類的內聯成員函數。例如,函數聲明和實現內聯,而不是這樣的:內聯函數鏈接器錯誤
int GetTplLSize();
在.cpp文件:
在頭文件int NeedleUSsim::GetTplLSize()
{
return sampleDim[1];
}
出於某種原因,如果我把「內聯「關鍵字在任何一個執行和聲明中,以及在兩個地方,我都會得到鏈接器錯誤,如下所示:
Creating library C:\DOCUME~1\STANLEY\LOCALS~1\TEMP\MEX_HN~1\templib.x and object C:\DOCUME~1\STANLEY\LOCALS~1\TEMP\MEX_HN~1\templib.exp mexfunction.obj : error LNK2019: unresolved external symbol "public: int __thiscall NeedleUSsim::GetTplLSize(void)" ([email protected]@@QAEHXZ) referenced in function _mexFunction mexfunction.mexw32 : fatal error LNK1120: 1 unresolved externals C:\PROGRA~1\MATLAB\R2008B\BIN\MEX.PL: Error: Link of 'mexfunction.mexw32' failed.
需要什麼才能擺脫這種錯誤(即我在做這些內聯成員函數方面做了什麼錯誤)?
這是唯一的方法嗎? (爲了可讀性的原因,我想分開聲明和實現) – stanigator 2009-06-05 00:46:56
基本上是的。編譯器在編譯對它的調用時必須知道函數的主體,因此主體必須位於包含的頭文件中。 但是,您仍然可以在類聲明中聲明該函數,並在稍後的頭文件中添加該實現。 – Hans 2009-06-05 01:03:54
我明白了。我想我只需要用這種方式編寫代碼就行了。感謝您的建議。 – stanigator 2009-06-05 02:10:53