У меня есть следующий пример кода (в пределах той же области?):Если несколько классов имеют статическую переменную общего, они совместно
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;
}
класса В и С имеют класс А в качестве статической переменной члена.
Я ожидал, что программа напечатает «1 1», однако печатает «2 2».
Если несколько классов имеют статическую переменную в общем, они разделяют (в том же объеме?)
Это может быть поучительным, чтобы добавить объекты 'B b1, b2' и' C c1, c2, c3'. – MSalters