« メニュー項目の動的追加 | メイン | イベントを割り当ててみる »

December 01, 2004

C++Builderのイベント

Builderでイベントを実行中に割り当てようとして、ふと疑問に思った。
サンプルでは何気なく、クラスのメンバ関数を代入しているが、C++でそんなことは出来ないんじゃなかったっけ?
つまり、次のような文だが、
Event1 = Class1->fun;
このようには出来なかった気がする。この場合は、
Event1 = Class1::fun;
としなければならず、Event1の定義を見ると関数ポインタのようなので、Class1::funはstaticなメンバ関数でなければならないはず。
でも、不思議なことにBuilderでは普通に出来ている。
変だなぁと思ってよく見ると、__closureというキーワードが間に入っている。
ヘルプを見ると、これはBuilder独自の拡張のようで、クロージャと呼ばれる物らしい。
で、いい感じにthisポインタを取得して、そのメンバ関数をコールしてくれるようだ。
なるほどね。
独自拡張だったのか。

投稿者 Takenori : December 1, 2004 01:14 AM

Trackback Pings

このエントリーのトラックバックURL:
http://blog.kaede-software.com/mt-tb.cgi/389

コメント

Total : Today : Yesterday :