当我在c ++课堂上使用goto时,我遇到了那个消息,怎么能在c ++课程中使用goto?
In member function `void note_system::student_no()':
label 'stop' used but not defined`
答案 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
应该被禁止,它应该只用于双重护理。