インスタンスから静的メンバ関数を呼ぶ
class Hoge { public: void Print1() { _tprintf(_T("Print1\n")); } static void Print2() { _tprintf(_T("Print2\n")); }; };
これまで静的メンバ関数を呼ぶにはスコープ演算子を用いて呼ぶものだと思っていたのですが、
Hoge::Print2(); // →Print2
インスタンスからも呼ぶことができるみたいですね。いつからだろう?知らなかっただけ??
Hoge hoge;
hoge.Print2(); // →Print2
ただしビルドすると"ローカル変数は 1 度も使われていません。"というメッセージが出るので、コンパイルするときにはインスタンスが呼び出すのではなくHoge::Print2()として呼び出しているのかもしれません。
開発環境はVS2012で試しています。