如何通过C++中的函数退出while循环

1 c++ function-pointers map

假设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循环?

Ned*_*der 6

你有几个选择:

  1. 在exit函数中引发异常,并在while循环中捕获它.

  2. 让所有函数返回一个布尔值,无论是否退出while循环.

  • 另一种选择是传入一个指向布尔值的指针,如果退出则让函数设置它. (2认同)