【发布时间】:2017-03-24 07:43:08
【问题描述】:
我似乎不明白答案是 b 而不是 d。我知道它必须将变量 b 声明为静态变量。但是变量到底发生了什么?提前致谢。
考虑以下代码:
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
【问题讨论】:
-
这是考试题还是面试题?这不是您可以尝试和调试的东西吗?而且显示的程序甚至不会构建,所以所有答案都是错误的。
-
类对象之间共享一个静态变量。牢记这一点,再次通读代码。