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