あのねQ-Taroはね

Qtでは、メンバへのポインタ演算子を使っていた!
typedef void(ApplicationWindow::*m1_t0)();


mocというツールでコンパイルするとそのソースが生成される。
http://www.kde.gr.jp/~ichi/qt-2.3.2/moc.html


mocによって、メンバ関数へのポインタとその関数名の文字列がセットになったテーブルを作成するコードが生成される。
おそらく、このコードはそのクラスが生成される時に呼ばれるのだろう。


また、connect()によるコールバックの登録は、メンバ関数を登録しているように見えるが、
SLOT()マクロでそれは文字列に置き換えられている。
関数の実行は、その文字列からテーブルで関数ポインタを参照しそれを呼び出すしくみになっているのだろう。