Mam pytanie dotyczące tego, która funkcja jest wybrana do inicjowania statycznego członka klasy.Której funkcji używa się do inicjowania statycznego członka klasy?
//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
Zmienna Base::count
inicjowany jest Base::countInit()
aniżeli countInit()
określonej w Base.cpp. Ale local_count
jest inicjowany przez lokalny countInit
. Zastanawiam się więc, czy istnieje reguła taka jak Koenig lookup w tym przypadku?
więc 'Int podstawowa liczyć :: = countInit() ; 'dzwoni do członka? –
@LuchianGrigore, Tak, robi. Nie wiedziałem, że to się stało. – chris
gdzie jest "int Base :: count = countInit();" odwołany? wywoływać funkcję statycznego członka Funkcja Base :: countInit() nie może być wywoływana tylko przez funkcję countInit() poza zakresem klasy Base. – lulyon