假设mf_ptr是类的成员函数指针的typedef.我们有流动的代码:
map<string, mb_ptr> cmd_table;
cmd_table["exit"] = &class_name::exit;
string cmd;
while (cin >> cmd){
(this->*cmd_table[cmd])();
}
Run Code Online (Sandbox Code Playgroud)
那么我应该如何定义函数exit()以退出while循环?
你有几个选择:
在exit函数中引发异常,并在while循环中捕获它.
让所有函数返回一个布尔值,无论是否退出while循环.