質問

次のコードスニペットを理解するのを手伝ってください:

(foo.h)

class Foo
{
   public:
        typedef void (MyType::*Handler)(SomeOtherType* t);

        Foo(Handler handler) : handler_(handler) { }

   private:
        Handler handler_;
};

(mytype.h)

class MyType
{
     public:
          MyType() { }
          void fun1() { }
          void fun2() { }    
};

foo.hのtypedefはここで宣言していますか?それはある種の関数ポインターであることがわかりますが、アスタリスクの重要性は何ですか?タイプ(??)を参照しているようで、何らかの形で、新しくタイプ化されたポインターをmyTypeのタイプ(?!?)に「接続」しようとしています。

誰かがここに光を当ててもらえますか?本当に混乱している:s

役に立ちましたか?

解決

void (MyType::*)(SomeOtherType* t) クラスのメンバー関数へのポインターです MyType それには1つの議論が必要です(ポインター SomeOtherType)そして何も返しません。

FAQ Liteエントリ.

他のヒント

aへのポインタ MyType メンバー関数の戻り void ポインターを取得します SomeOtherType パラメーターとして。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top