ページ 11

インスタンス生成せずにメンバ関数を実行する

Posted: 2014年7月08日(火) 00:08
by マント
このサイトのコンテンツであるゲームプログラミングの館のサンプルプログラム(C++)の項目のsp.1に
記述されているソースコードについて分からないことがあったので質問させてください

このページでSingletonクラスのインスタンス取得の為、main.cppから
SingletonクラスのInstance関数を呼び出す文があるのですがSingleton::Instance()と記述されています

なぜインスタンスを生成していないのに関わらずInstance関数を呼び出せるのですか?
また、この場合の::(コロン二つ)にはどういう意味があるのですか?


ご教授いただければ幸いです
よろしくお願いします

Re: インスタンス生成せずにメンバ関数を実行する

Posted: 2014年7月08日(火) 00:13
by みけCAT
新・C言語 ~ゲームプログラミングの館~ [DXライブラリ]
ここのことですね?
マント さんが書きました:なぜインスタンスを生成していないのに関わらずInstance関数を呼び出せるのですか?
SingletonクラスのInstance関数はstatic指定されているからです。
[search=google]C++ メンバ関数 static[/search]
マント さんが書きました:また、この場合の::(コロン二つ)にはどういう意味があるのですか?
「スコープ解決演算子」だと思います。
対象の関数が所属するクラスを示す意味があります。
[search=google]C++ スコープ解決演算子 static[/search]

Re: インスタンス生成せずにメンバ関数を実行する

Posted: 2014年7月08日(火) 09:41
by softya(ソフト屋)
「スコープ解決演算子」と「static メンバ関数」の解説がないC++の入門書籍や入門サイトは止めた方が良いと思います。
もしちゃんと勉強していないなら、ちゃんとした書籍を読まれては?