私の質問は少し複雑です:メンバ関数ポインタのマップへの挿入
class a
{
public:
a()
{
pointerMap.insert(pair<std::string, void a::*(int, int)> ("func1", func1);
pointerMap.insert(pair<std::string, void a::*(int, int)> ("func2", func2);
}
private:
void func1(int a, int b);
void func2(int a, int b);
std::map<std::string, void a::* (int, int)> pointerMap;
}
私の質問があり、これは、メンバ関数へのポインタを追加することについて移動する正しい方法ですオブジェクト内のマップに移動し、個々のインスタンスのfunc1
またはfunc2
を参照するだけですか?
また、ポインタからこの関数を呼び出す方法についてはわかりません。このようなものでしょうか?
map["func1"](2,4);
メンバ関数を操作するときの構文について少し混乱します。
少し背景を与えることができますか?このようにクラスを設定する目標は何ですか? – jpm
これはまったくテストしましたか? –
'std :: make_pair(" func1 "、func1)'を使って、あなたのタイプを推論します。 – GManNickG