我有一个控制台菜单类的工作代码:
目标是拥有一个函数向量,然后在用户选择它们时调用它们。
我有函数部分工作,但我希望能够包含类方法而不是函数,这是我做不到的。
标题:
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;
}
主文件
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 方法也可以工作:\
任何帮助将不胜感激!