Iは、次のコード例があります複数のクラスの共通の静的変数を持っている場合、それらは(同じ範囲内?)共有されている
class A {
public:
static int a;
};
int A::a = 0;
class B {
public:
static A a1;
};
A B::a1;
class C {
public:
static A a1;
};
A C::a1;
int main(int argc, const char * argv[]) {
C::a1.a++;
B::a1.a++;
std::cout << B::a1.a << " " << C::a1.a << std::endl;
return 0;
}
クラスB及びCは、静的メンバ変数としてクラスAを有しています。
プログラムは "1 1"を印刷すると予想しましたが、 "2 2"が印刷されます。
複数のクラスは、共通の静的変数を持っている場合、彼らは(同じ範囲内?)で共有されている
オブジェクト「B b1、b2」および「C c1、c2、c3」を含む。 – MSalters