我似乎没有得到答案是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
答案 0 :(得分:-2)
答案是b:2,4
static int b
在多个“Numbers”对象中共享。
您还需要在其中一个源文件中定义它,如下所示:
int Numbers::b;