-4
我似乎没有得到答案是b而不是d。我知道它必须做一些变量b被声明为一个静态变量。但是这些变量究竟发生了什么?提前致谢。C++静态变量没有给出正确的输出
考虑下面的代码:
class Numbers {
private:
int a;
static int b;
public:
Numbers(int x) : a(x) { b = x; }
void incA() { a++; }
void incB() { b++; }
int getA() { return a; }
int getB() { return b; }
};
int main() {
Numbers n1(1);
Numbers n2(2);
n1.incA();
n1.incB();
n2.incA();
n2.incB();
cout << n1.getA() << "," << n1.getB() << endl;
return 0;
}
什么是从上面的程序的输出? 的(a)2,2-(B)2,4-(C)2,5(d)2,3-
这是考试或面试问题?这不是你可以尝试和调试的东西吗?所示的程序甚至不会构建*所有答案都是错误的。 –
静态变量在类对象之间共享。再次仔细阅读代码。 – belln