WikipediaやMore C++ Idiomsでも紹介されている、シングルトンインスタンスの確保の仕方
C++
class Singleton { // 各種コンストラクタを外部から呼べなくするあれこれ : // インスタンスの取得メソッド static Singleton& getInstance(){ static Singleton inst; return inst; } // 以下実装 : }
ですが、このクラスをヘッダファイルで宣言した場合にSingleton::getInstance() が唯一オブジェクトを返してくれる理由が今ひとつ理解できていません。
このファイルを Singleton.h と名付けたとして、複数のcppファイルからこのヘッダをインクルードした場合、各cppファイルで別々にこのヘッダが展開され、別々にこのクラスを認識し、getInstance関数も定義されたことになるので、各cppファイル毎に別のインスタンスを見てしまうのでは? と疑問に思うわけです。
どう理解すべきでしょうか。
まだ回答がついていません
会員登録して回答してみよう