Menu::Menu(map < string, void(*)() > options) :
menuOptions(options)
{}
メニューオプションdelcarationにクラスメンバ関数の追加: プライベート: //ブリーフ:(オプションを記述する)文字列の地図とリンク機能は マップ<文字列を呼び出すことが、void(*)()> menuOptions;C++ Menu.hで地図
メニュークラスのメンバであるこのマップに挿入しようとするとエラーが発生します。コードをコンパイルしようとしたとき、私は取得エラーは、次んです:コンストラクタの
何のインスタンス "のstd ::ペア< _Ty1、_Ty2"> :: _Ty1 =のstd ::文字列、_Ty2 =ボイドのペア[ (*)()]」私が求めていますすべてはあなたがクラス内でマップにメンバ関数を挿入しない方法です引数リスト
と一致する?
任意の助けいただければ幸い。ありがとう:)
メンバ関数は 'void(*)()'よりも少し複雑です。メンバ関数へのポインタは、関数 'std :: function'を使ってみることができます –
' Menu :: printInvalidEntryErrorMessage'はメンバ関数です。関数ポインタで指すことはできません。 [Click](https://isocpp.org/wiki/faq/pointers-to-members) – mpiatek
メンバ関数へのポインタの構文は次のとおりです: 'void(Menu :: *)()' –