Czy ktoś może wyjaśnić, jak zmienne statyczne w funkcjach składowych działają w C ++.
Biorąc pod uwagę następującą klasę:
class A {
void foo() {
static int i;
i++;
}
}
Jeśli zadeklaruję wiele wystąpień A
, czy wywołanie foo()
jednego wystąpienia spowoduje zwiększenie zmiennej statycznej i
we wszystkich wystąpieniach? Czy tylko ten, do którego został wezwany?
Założyłem, że każda instancja będzie miała swoją własną kopię i
, ale przeglądanie kodu, który mam, wydaje się wskazywać inaczej.
static int i
specyficzny dla instancji, tak aby np.o1.foo(); // i = 1
I$o2.foo(); // i = 1
…?