Quelqu'un peut-il expliquer comment les variables statiques dans les fonctions membres fonctionnent en C ++.
Compte tenu de la classe suivante:
class A {
void foo() {
static int i;
i++;
}
}
Si je déclare plusieurs instances de A
, l'appel foo()
d'une instance incrémente-t-il la variable statique i
sur toutes les instances? Ou seulement celui sur lequel il était appelé?
J'ai supposé que chaque instance aurait sa propre copie de i
, mais parcourir un certain code que j'ai semble indiquer le contraire.
static int i
spécifique à l'instance, de sorte que par exempleo1.foo(); // i = 1
et$o2.foo(); // i = 1
...?