0
私はこのエラー:非静的メンバ関数への参照と呼ばれなければならない(2)
class A {
public:
typedef int (A::*AFn)(int);
std::map<std::string, AFn> fm_;
A() {
fm_.insert("fn1", fn);
}
int fn(int a) {
return a;
}
};
のようなコードの部分を持っている私は、コンパイル時エラーがなぜこれが起こるんerror: reference to non-static member function must be called fm_.insert("fn1", fn);
を言って取得し、どうすれば修正できますか?
したがって、どのように値を非静的メンバー関数ポインタにすることができるマップを宣言し、どのように使用するのですか? – ace007
@ ace007:地図は賢明に宣言されています。 *あなたのマップに要素を挿入するときは、 'fn'の代わりに'&A :: fn'構文を使わなければなりません。単に 'fm_.insert(" fn1 "、&A :: fn);'を実行してください。それで全部です。 – AnT
これを試してみましたが、「エラー: 'insert'の呼び出しのための一致するメンバー関数がありません。fm_.insert( "fn1"、&A :: fn); ' – ace007