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

标签 c++ dictionary function-pointers

假设mf_ptr 是一个类的成员函数指针的typedef。我们有流畅的代码:

map<string, mb_ptr> cmd_table;
cmd_table["exit"] = &class_name::exit;
string cmd;
while (cin >> cmd){
    (this->*cmd_table[cmd])();
}

那么我应该如何定义函数 exit() 来退出 while 循环呢?

最佳答案

您有几个选择:

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

  2. 让您的所有函数都返回一个 bool 值,表示是否退出 while 循环。

关于c++ - 如何通过 C++ 中的函数退出 while 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11007766/

相关文章:

C - 应用于矩阵的函数指针。段错误

指向以模板作为参数的函数的 C++ 函数指针

java - 从 Map<String,String> 获取 3 个最高值

python - 使用 iteritems 与字典查找从旧字典创建新字典的字典理解

c++ - shared_ptrs 的 unordered_map 破坏了 C++ 程序

c++ - 汉诺塔在 C++ 中有 3 个参数,Tower(Disk, from, to)

Python:使用从迭代器获取的键声明字典

c++ - 将重载函数分配给函数指针作为默认值

c++ - 在可变参数模板中使用 lambda 调用 std::make_tuple - 这应该在 C++11 中工作吗?

c++ - 使用 C++ 的 SQLite 插入语句