Как мне выйти из моей текущей области действия из void, чтобы я мог вернуться к основному? Что мне нужно сделать?

Моя ошибка:

|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
}

1

Решение

Просто вернитесь:

void somefunc() {
if (something)
if (something_else)
return;
}
}
}

Вы можете вернуться из функции void. Вы просто не можете вернуть объект.

Как еще примечание, вы никогда не должны звонить main, Вы можете сделать эту компиляцию, поставив continueChoice под main и forward, объявляя это, но тогда вы создадите бесконечный рекурсивный цикл, который очень плох для всего.

2

Другие решения


По вопросам рекламы [email protected]