Variable estática dentro de la función miembro de la clase base
tengo los siguientes
class base
{
public
void f();
...
}
void base::f()
{
static bool indicator=false;
.....
if(!indicator)
{
...
indicator=true;
}
}
class D:public base
{
...
}
en mi principal () tengo:
main()
{
// first instance of D
base *d1 = new D();
d1->f();
....
// 2nd instance of D
base *d2 = new D();
d2->f();
}
Encuentro que la primera vez que hago una instancia de D y llamo d1-> f (), la variable estática se establece en falso. pero la segunda vez que llamo d2-> f () el código ni siquiera llega a la línea "static bool indicator = false"; y se mantiene en verdad (desde el primer paso de d1-f ()) Este es exactamente el comportamiento que quiero, pero no entiendo por qué sucede esto. alguien puede explicar por favor lo que está sucediendo gracias por adelantado