Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
DanilStudent
0 / 0 / 0
Регистрация: 30.05.2013
Сообщений: 19
#1

Возврат в функцию - C++

08.06.2013, 17:53. Просмотров 314. Ответов 5
Метки нет (Все метки)

Как сделать так, чтобы когда функция выполнилась, она вернула управление не в точку, из которой вызывалась, а в начало вызывающей функции?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.06.2013, 17:53
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Возврат в функцию (C++):

Возврат ссылки на функцию.
Здравствуйте, можете пожалуйста объяснить чем отличается когда функция создается просто каким то типом, и когда она создается ссылкой на...

Возврат функцией указателя на функцию
Всем привет! У меня возникла такая проблема: класс имеет поле-указатель на функцию. В методе, который осуществляет доступ к этуму полю,...

Передача аргументов в функцию и возврат значения
Зачем нужны аргументы функции? Что делает return, если задать ненулевое значение? Как из main() перенести переменную в другую...

Возврат объекта с полями-массивами в функцию
Есть вот такой код: #include<iostream> using namespace std; const int MAX=9; class Money {

Передача в функцию и возврат из функции динамической матрицы
#include "stdafx.h" #include "iostream" using namespace std; const int n = 8; double ** f (double ** mas, int n) { ...

Возврат и передача статического массива в функцию, перегрузка функций
Написать программу, использующую потоки cout и cin для ввода/вывода и перегрузку функций. Программа должна содержать одноименные функции,...

5
ksandro
31 / 31 / 4
Регистрация: 15.04.2011
Сообщений: 81
08.06.2013, 18:11 #2
Так сделать нельзя. Функция всегда возвращается в точку из которой была вызвана.
Возможно тебе надо сделать рекурсивный вызов функции (вызов функцией самой себя) или просто использовать цикл.

Опиши подробнее задачу, для чего тебе это нужно?
0
Dr_Quake
Заблокирован
08.06.2013, 18:21 #3
Да вообще-то легко можно, только это будет уже не C++, а солянка хренова, реализация GOTO на асме достаточно проста, но как бы GOTO - прямая дорога в ад.
0
castaway
Эксперт С++
4927 / 3034 / 453
Регистрация: 10.11.2010
Сообщений: 11,089
Записей в блоге: 10
Завершенные тесты: 1
08.06.2013, 18:23 #4
В конце функции вызывай вызывающую функцию.
0
DanilStudent
0 / 0 / 0
Регистрация: 30.05.2013
Сообщений: 19
08.06.2013, 18:26  [ТС] #5
А, зря панику развел, всё понял, там нужно с помощью цикла бесконечного.
0
Croessmah
++Ͻ
14161 / 8086 / 1513
Регистрация: 27.09.2012
Сообщений: 19,926
Записей в блоге: 3
Завершенные тесты: 1
08.06.2013, 18:41 #6
Можно поиграться с Си'шными прыжками (longjump), но подобное поведение в контексте C++ настораживает...да и в Си тоже

Добавлено через 13 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <stdio.h>
#include <setjmp.h>
 
jmp_buf env;
 
void newfunction(){
    longjmp(env, 1);
}
 
int main(){
    std::cout<<"New function start"<<std::endl;
    int retval=setjmp(env);
    std::cout<<"New function end"<<std::endl;
    if (!retval) 
        newfunction();
    return 0;
}
0
08.06.2013, 18:41
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.06.2013, 18:41
Привет! Вот еще темы с решениями:

возврат
пример: функция была выполнена с ошибкой, как сделать возврат на предыдущее функцию?

Возврат массива
Не спрашивайте зачем я это делаю, если можно просто использовать strcpy. char tostrcpy(char *to, char *from); int main(int i) { ...

Возврат почему же?!
Народ помогите у меня функция почему то возвращает значение хочё сделать чек бокс для своеё игры void DrawMenuBut( char *txt,...

Возврат по ссылке
Приветствую всех! Есть пример из книги Р. Лафоре &quot;Объекто-ориентированное программирование в C++&quot;: #include &lt;iostream&gt; using...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru