Как передать управление с одной функции на другую в C ++?
В принципе, у меня есть функция A, которая берет входные данные от пользователя и вызывает функцию по выбору пользователя. его можно просто выполнить, вызвав нужную функцию, используя конструкцию case switch, но этим элемент управления перейдет к другой функции и после того, как управление выполнением вернется к функции A, но я этого не хочу. Функция A должна быть завершена во время вызова другой функции.
Вы можете использовать
std::function
для этого:это выполнит либо функцию
B()
, либоC(123)
основанный на пользовательском вводе после завершенияA
.Если я правильно понял, вы можете сделать следующее.
Вы можете вернуть функцию
A
, передав вход пользователя другой функции (other_functions_here(int& user_input)
), где вы будете обрабатывать случаи коммутатора / другие мелкие функции в соответствии с пользовательским вводом.Таким образом, вы можете просто вызвать
function_A()
в основном просто следующим образом.Однако вы должны быть очень осторожны в отношении исключений, с которыми вам, возможно, придется столкнуться, кодируя таким образом. Кроме того, отладка также будет затруднительной.
case 1: return fun1(); case 2: return fun2();