考虑以下C ++代码:
class MyClass
{
private:
static int y;
public:
static void setY(int t) { y = t; }
int getY() {return y;}
};
int MyClass::y = 0;
int main()
{
MyClass mc, mc1;
MyClass::setY(10);
cout << mc.getY() << endl; //prints 10
mc1.setY(12);
cout << mc.getY() << endl; //prints12
return 0;
}
为什么我们必须在主要之前声明int MyClass::y=0;
?如果我们对此进行评论,我们将收到一条错误消息,例如“未定义的变量y”。我们不是只在课堂上定义它吗?另外,为什么它必须是全球性的?为什么我们不能将int MyClass::y=0;
放在主函数中?