我如何在C ++中使用“goto”

时间:2014-03-09 18:55:37

标签: c++ class goto

当我在c ++课堂上使用goto时,我遇到了那个消息,怎么能在c ++课程中使用goto?

In member function `void note_system::student_no()':
  label 'stop' used but not defined`

1 个答案:

答案 0 :(得分:1)

你会做这样的事情(要有一个范围退出点,比如说出于某种奇特的原因,使用基于RAII的技巧是不可能的):

status_code func_with_goto() {
    if (i_see_errors()) goto func_end;
    ...
    func_end:
        return status_code::error;
}

或者像这样(模仿类似标签的行为):

outer: while (...) {
    inner: while (...) {
        ...
        goto outer;
    }
}

或者,如果您只是想在Basic中重新实现第80个C++计划:

x10: std::cout << "Hello World!" << std::endl;
x20: goto x10;

极少数情况下goto可能是合理的。它的存在使人类和编译器的静态代码分析复杂化。这并不意味着goto应该被禁止,它应该只用于双重护理。