如何从 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?

本文关键字:范围 什么 void      更新时间:2023-10-16

我的错误:

|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 和前向声明它下来进行编译,但随后你会创建一个无限递归循环,这对一切都非常不利。