C++のstatic関数
締め切りが月曜日なので、わんくま同盟名古屋勉強会#09*1の発表資料を書きながら、わんくま同盟横浜勉強会#02*2のUstream中継*3を見ていたんですが、static関数の呼び出しについての話題について、デバッグをしていたら実質的に下記のようにぬるぽからstatic関数を呼び出すコードになっているのを見た事がありました。
class CHoge { public: CHoge() {} ~CHoge() {} public: static void StaticFunc() {} }; void main() { CHoge* pHoge = NULL; pHoge->StaticFunc(); // これは異常終了しない(少なくともVC++では) }
この経験から、自分のプロジェクトのコーディング規約では、static関数の呼び出し時には「.」「->」演算子からの呼び出しは禁止にしているんですが、ぬるぽからの呼び出しで落ちないのには最初ビックリしましたよ。