У меня вопрос о том, какая функция выбрана для инициализации статического члена класса.Какая функция используется для инициализации статического члена класса?
//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
Переменная Base::count
инициализируется с Base::countInit()
, а не countInit()
определенной в Base.cpp. Но local_count
инициализирован локальным countInit
. Итак, интересно, есть ли правило, такое как Koenig поиск в этом случае?
Так 'INT Базовый :: Count = countInit() ; 'вызывает участника? –
@ LuchianGrigore, да, это так. Я не знал, что это произошло. – chris
где is "int Base :: count = countInit();" вызывается? вызвать функцию статического члена. Счетчик Base :: countInit() не вызывается только countInit() из области класса Base. – lulyon