如何从 void 中脱离当前范围,以便回到主范围?我需要做什么
How do I get out of my current scope from void so I can get back to main? What do I need to do?
我的错误:
|21|error: 'main' was not declared in this scope|
||=== Build failed: 1 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|
我的实际程序完全不同,而且要大得多(因此不需要的标头)。我只是写这个是为了快速演示我的问题。我如何摆脱该 void 函数的范围并返回主(我的程序菜单实际所在的位置)?
#include <iostream>
#include <cmath>
#include <cstdlib>
#include <cstdio>
#include <limits>
int continueint;
using namespace std;
class handles {
public:
void continueChoice()
{
cout<<"[1] Go back to the main menu"<<endl;
cout<<"[2] Terminate the program"<<endl;
cin>>continueint;
switch (continueint)
{
case 1:
main(); // This is where my problem lies
case 2:
break;
}
}
}handlers;
int main(int nNumberofArgs, char*pszArgs[])
{
cout<<"A message here."<<endl;
system("PAUSE");
handlers.continueChoice(); //Calls the void function in the above class
}
只需返回:
void somefunc() {
if (something)
if (something_else)
return;
}
}
}
您可以从 void 函数返回。您只是无法返回对象。
进一步说明,您永远不应该打电话给main
。你可以通过将continueChoice
放在 main 和前向声明它下来进行编译,但随后你会创建一个无限递归循环,这对一切都非常不利。
相关文章:
- 重载运算符的范围是什么?它是否会影响作为类成员的集合的插入函数?
- 在 c++ 中解决段树以外的范围查询的有效方法是什么?
- 这个变量在 C++ 中的范围是什么?
- 访问提升:shared_ptr 主范围外崩溃,断言失败:px != 0.指针的正确用法是什么?
- 朋友声明的复杂范围界定规则有什么意义?
- "using namespace"子句在什么范围内有效?
- C++ 中的引用范围是什么?
- 在 C++20 计算范围内相邻对的最简洁明了的方法是什么?
- 私有在函数定义/实现的返回值范围内是什么意思 (c++)?
- "1L << count"是什么意思?如何使用超出"unsigned long long int? "范围的语句编号打印?
- 无法取消引用超出范围的向量迭代器 - 有什么问题?
- 在基于范围的循环中使用通用参考有什么好处?
- 什么概念允许容器在基于范围的 for 循环中使用?
- 范围操作员(::)在班级名称中做什么
- 什么是N位签名整数的最大保证范围
- 范围分辨率运算符在类型:: var的情况下返回什么
- 范围中的"range"和"view"有什么区别sv3 ts?
- C++ OpenCL:当缓冲区超出范围时,子缓冲区会发生什么情况?
- 在某些范围更新后获取整数数组的最终状态的有效算法是什么?
- C 中类声明的范围是什么?