静的なクラスメンバーを初期化するために選択された関数について質問があります。静的なクラスメンバーを初期化するために使用される関数はどれですか?
//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()
なくBase.cppで定義さcountInit()
で初期化されます。しかし、local_count
はローカルcountInit
によって初期化されます。だから、この場合、Koenigルックアップのようなルールがありますか?
したがって 'INTベースは(= countInitを数::) ; 'メンバーに電話しますか? –
@LuchianGrigoreはい、そうです。私は起こったことを知らなかった。 – chris
は "int Base :: count = countInit();"です。呼び出された?原因静的メンバー関数Base :: countInit()countは、class Baseの範囲外のcountInit()によってのみ呼び出されることはありません。 – lulyon