Kann jemand bitte erklären, wie statische Variablen in Mitgliedsfunktionen in C ++ funktionieren.
Gegeben die folgende Klasse:
class A {
void foo() {
static int i;
i++;
}
}
Wenn ich mehrere Instanzen von deklariere A
, foo()
erhöht der Aufruf einer Instanz die statische Variable i
auf allen Instanzen? Oder nur der, auf den es gerufen wurde?
Ich nahm an, dass jede Instanz eine eigene Kopie von haben würde i
, aber das Durchgehen eines Codes, den ich habe, scheint etwas anderes anzuzeigen.
static int i
der Instanz spezifisch macht , so dass z. B.o1.foo(); // i = 1
und$o2.foo(); // i = 1
...?