コンソールメニュークラスのこの作業コードがあります:
目標は、ユーザーが選択したときに呼び出される関数のベクトルを持つことです。
関数の部分は機能していますが、関数の代わりにクラスメソッドを含めたいのですが、できません。
ヘッダ:
typedef int (*FunctionPointer)();
class Menu {
string title;
vector <string> items;
vector <FunctionPointer> functions;
public:
Menu(string title);
void addMenuItem(string,FunctionPointer);
int showMenu();
};
コード:
int Menu::showMenu() {
//removed code to make it easier to read
//working code to get option
functions[option-1]();
return 0;
}
main.cpp
int quit() {
cout << "QUIT";
return 0;
}
int main() {
Menu mainMenu("Main Menu");
Menu subMenu("Sub Menu");
mainMenu.addMenuItem("Sub Menu", *subMenu.showMenu);
mainMenu.addMenuItem("Quit", *quit);
mainMenu.showMenu();
}
終了関数ポインタは完全に正常に動作しますが、Menu クラスの下の showMenu メソッドも動作させる方法を見つけることができないようです :\
どんな助けでも大歓迎です!