KH
class k
{
static int ii;
static void foo();
};
k.cpp
#include "k.h"
void k::foo()
{
ii++;
}
在編譯我收到以下錯誤信息:
error LNK2001: unresolved external symbol "private: static int k::ii" ([email protected]@@0HA)
這是確定的。但是,當我添加inline
關鍵字的方法,錯誤消失:
class k
{
static int ii;
inline static void foo();
};
這不是現實世界的例子,但我不知道到底發生了什麼在此代碼,可能是有人向我解釋?
凡'foo'使用? ii定義在哪裏? foo的定義在哪裏? –
@Charles貝利FOO無處使用的,II無處定義,在CPP文件中定義FOO。但我已在下面的答案中得到解釋,看起來完全正確。 foo未使用,因此不會生成代碼。 – begezavr