Qualcuno può spiegare come funzionano le variabili statiche nelle funzioni membro in C ++.
Data la seguente classe:
class A {
void foo() {
static int i;
i++;
}
}
Se dichiaro più istanze di A
, la chiamata foo()
su un'istanza aumenta la variabile statica i
su tutte le istanze? O solo quello a cui è stato chiamato?
Supponevo che ogni istanza avrebbe avuto la sua copia di i
, ma scorrere un po 'di codice che ho sembra indicare il contrario.
static int i
specifico dell'istanza, in modo tale che ad es.o1.foo(); // i = 1
E$o2.foo(); // i = 1
...?