Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
DanilStudent
0 / 0 / 0
Регистрация: 30.05.2013
Сообщений: 19
#1

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

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

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

C++ Возврат объекта с полями-массивами в функцию
возврат на верх C++
C++ Возврат функцией указателя на функцию
Возврат ссылки на функцию. C++
C++ Возврат ссылок в C/C++
C++ Возврат коретки
возврат C++
Возврат ссылки C++
Передача аргументов в функцию и возврат значения C++
C++ Передача в функцию и возврат из функции динамической матрицы
Возврат ссылок C++
Возврат по ссылке C++

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

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

Опиши подробнее задачу, для чего тебе это нужно?
Dr_Quake
Заблокирован
08.06.2013, 18:21     Возврат в функцию #3
Да вообще-то легко можно, только это будет уже не C++, а солянка хренова, реализация GOTO на асме достаточно проста, но как бы GOTO - прямая дорога в ад.
castaway
Эксперт С++
4869 / 3008 / 370
Регистрация: 10.11.2010
Сообщений: 11,059
Записей в блоге: 10
Завершенные тесты: 1
08.06.2013, 18:23     Возврат в функцию #4
В конце функции вызывай вызывающую функцию.
DanilStudent
0 / 0 / 0
Регистрация: 30.05.2013
Сообщений: 19
08.06.2013, 18:26  [ТС]     Возврат в функцию #5
А, зря панику развел, всё понял, там нужно с помощью цикла бесконечного.
Croessmah
Модератор
Эксперт CЭксперт С++
 Аватар для Croessmah
12507 / 7069 / 794
Регистрация: 27.09.2012
Сообщений: 17,454
Записей в блоге: 2
Завершенные тесты: 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;
}
Yandex
Объявления
08.06.2013, 18:41     Возврат в функцию
Ответ Создать тему
Опции темы

Текущее время: 10:43. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru