クラス内で定義されたファンクターがあります。ファンクターから外部クラスのメンバー関数に直接アクセスしたい。それ、どうやったら出来るの?このファンクターをコードの別の場所にあるテンプレート クラスに渡したいと思います。関数ポインターを使用したくありません。
ファンクターは、そのクラスの関数を呼び出すことができるように、初期化時に割り当てられたメンバーとして内部クラスへの参照を保持する必要がありますか?
Class MyClass //outer class
{
void DoSomething() //member function I want to access from functor
{
}
class MyFunctor //the functor who wants to access outerclass's function
{
void operator() ()
{
DoSomething() //This is a member function of outer class
}
}
};
}
ファンクター内の外部クラスへのローカル参照を保持したい場合、ファンクターへのインスタンス (ポインターではない) を作成し、ファンクターのコンストラクターで外部クラスへのポインターを渡すにはどうすればよいでしょうか?