class a{
public:
int b;
static int c;
virtual void mod() const
{
c=4;
}
};
int _tmain(int argc, _TCHAR* argv[])
{
a bi;
return 0;
}
看這...使用Visual Studio C++編譯器2010編譯之後,我得到...C++中的Const過程,Visual Studio C++ 2010中的奇怪錯誤?
cpplearningconsole.obj:錯誤LNK2001 :解析外部符號 「市民:靜態INT一:: c「(?c @ a @@ 2HA)
我想這是一個編譯器錯誤。 對我來說,真正的問題是。應該mod能夠修改c變量,如果它是常量?
謝謝。
這不是一個編譯器錯誤...你已經聲明瞭靜態成員'c',但沒有在任何地方定義它。 – forsvarir 2011-06-06 11:46:35
'mod'可以是'const'並且改變'c'的值,因爲'c'不是實例的成員(因爲它是靜態的)'mod'被調用,所以實例不會改變。 – forsvarir 2011-06-06 11:53:27
mod是在類中定義的,還有b,爲什麼不是c?這裏的邏輯在哪裏? – Aftershock 2011-06-06 11:57:33