« WinXP 対策の副作用 | トップページ | 雑誌の取材 »

2007.04.12

助けて~

スキル不足でよくわからん。^^;;

class Foo {
  void bar();
  void baz();
};

void Foo::bar()
{
  // foobar
}

void Foo::baz()
{
  typedef void (Foo::*PFUNC)();

  PFUNC pFunc = &Foo::bar;

  pFunc();     // ここでエラー

}


最後のところで pFunc() で関数を呼びたいのだが、
『foo.cpp(14) : error C2064: 0 引数を取り込む関数には評価されません。』
というエラーが出る。なぜ?

bar() 以外にも同じ型のメンバ関数がいっぱいあるから、関数テーブル作って適当に呼びたいの。テスト的にね。

誰か教えて~。

#.NET 2003 だと、&Foo::bar は bar だけで通るけど、2005 だと、&Foo:: が必要だった。

(←フリーソフトを作るモチベーションアップのために、ぜひ。)

|

« WinXP 対策の副作用 | トップページ | 雑誌の取材 »

「プログラミング」カテゴリの記事

コメント

古いエントリなので解決済みかもしれませんが…
(this->* pFunc)();
かな?

投稿: ほかの用事でググってて通りすがったものです | 2007.07.06 14:37

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/20208/14660295

この記事へのトラックバック一覧です: 助けて~:

» sears grill part [sears grill part]
助けて~ [続きを読む]

受信: 2007.05.04 15:01

» adult cam shots [adult cam shots]
助けて~ [続きを読む]

受信: 2007.07.13 19:36

« WinXP 対策の副作用 | トップページ | 雑誌の取材 »