Ho una domanda su quale funzione è stata scelta per avviare un membro di classe statico.Quale funzione viene utilizzata per inizializzare il membro della classe statico?
//Base.h
class Base
{
private:
static int count;
static int countInit()
{
return 10;
}
public:
Base()
{
}
};
//and Base.cpp
static int countInit()
{
return 0;
}
int Base::count=countInit();//member function is used.
static int local_count=countInit();//the local one in Base.cpp
La variabile Base::count
viene inizializzato con Base::countInit()
anziché countInit()
definito Base.cpp. Ma il local_count
viene inizializzato dal locale countInit
. Quindi, mi chiedo, c'è una regola come Koenig lookup all'interno di questo caso?
Così 'int Base :: count = countInit() ; 'chiama il membro? –
@LuchianGrigore, Sì, lo fa. Non ero a conoscenza di quello che è successo. – chris
dove è "int Base :: count = countInit();" invocato? causa la funzione membro statico Base :: countInit() il conteggio non può essere invocato solo da countInit() al di fuori dell'ambito della classe Base. – lulyon