我有一個類,我內聯的構造函數和析構函數,我也有一個類的靜態方法。我在內聯析構函數內部調用了這個靜態方法,但是我對該靜態方法有一個鏈接器錯誤未定義的引用。我很確定它被編譯並與對象鏈接。這裏的代碼,未定義引用與內聯析構函數
// CFoo.h
namespace barname {
class CFoo
{
public:
CFoo();
~CFoo();
static void fooMethod();
};
inline CFoo::CFoo()
{
}
inline CFoo::~CFoo()
{
fooMethod();
}
}
// SomeOtherSource.cpp
namespace barname
{
void CFoo::fooMethod()
{
}
}
看來代碼是好的,並編譯。
'在線Cfoo的編譯OK ():: CFoo()'a nd'inline CFoo()::〜CFoo()'甚至不是有效的C++。如果你花時間去分享一個SSCCE,謝謝,並且請嘗試張貼實際*編譯*的代碼,因爲與你的問題的評論相反,這是* not *。 (和固定的,這編譯叮噹罰款)。 – WhozCraig
我無法重現您正在描述的問題(修復語法錯誤之後)。看起來像你上面的SSCCE未能捕捉到原始代碼中重要的東西。 – greatwolf