0 / 0 / 0
Регистрация: 26.10.2014
Сообщений: 58
1

Способы возврата данных из функции

21.06.2015, 18:32. Показов 3496. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
какими способами можно возвратить данные из функции(передать копию, адрес или ссылку)?????
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.06.2015, 18:32
Ответы с готовыми решениями:

Объясните код возврата данных из функции
public int get (int index) { if(os(index)) return a; return errval; } if(ok(index)) { a =...

Функции. Как после одного возвратного значения функции отталкиваться от возврата другой функции
Написал код, в котором 2 функции одна возвращает стринговое значение, вторая должна бы вернуть...

Почему выделенная внутри функции память удаляется после возврата функции? Это можно исправить?
Вот пример функции, которая выделяет память под переменную, объявленную за её пределами: void...

Изучаю C# по книге Шилдта. И не могу понять принцип возврата из метода и возврата значения
Объясните пожалуйста простыми словами

2
67 / 67 / 72
Регистрация: 10.04.2015
Сообщений: 281
21.06.2015, 19:01 2
Лучший ответ Сообщение было отмечено brrr как решение

Решение

1) самое простое
C++
1
return something;
2)Передаем по ссылке: (//Украдено с RSDN). Изменяем значения. После отрабатывания функции, переменные примут значения, которые получили в функции.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int arg1 = 0, arg2 = 1, arg3 = 1;
 
int FuncMultipleRet( int& a1, int& a2, int& a3 )
{
  a1 += a2 + a2;
  a2 += a1 + a3;
  a3 += a1 + a2;
}
 
int main()
{
  printf( "%d, %d, %d\n", arg1, arg2, arg3 );
  FuncMultipleRet( arg1, arg2, arg3 );
  printf( "%d, %d, %d\n", arg1, arg2, arg3 );
}
3. Возвращайте объект(класс, структуру).
0
Заблокирован
Автор FAQ
21.06.2015, 19:03 3
brrr, можно возвратить прямо - это делается указыванием типа возвращаемого значения(он может быть как базовым типом, так и типом определённым пользователем) и собсвтенно его возвратом через return
C++
1
2
3
4
int func(int arg){
    int ret = arg + 5;
    return ret;
}
либо же можно возвратить значение косвенно - это как раз таки через указатель или ссылку
C++
1
2
3
void func(int &res){
      res = res + 5;
}
В обоих случаях из примеров выше функция прибавляет 5 к перданному в неё значению, в первом случае прямой возврат(return), вот втором косвенный возврат по ссылке.

Существует ещё компбинирвоанный способ возрата значений, к примеру рассмотрим функцию нахождения x-1
C++
1
2
3
4
5
6
bool divide(int x){
     bool bFlag = x!= 0;
     if( bFlag )
        x= 1 / x;
    return bFlag;
}
- в этом случае функция помимо косвенного возврата результата 1 / x имеет прямой возврат булевого значение которое говорит о реализуемости данной операции(для случая val == 0 прямой возврат от функции будет false - что укажет не то что косвенный возврат по ссылке не содержит корректного значения)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.06.2015, 19:03
Помогаю со студенческими работами здесь

Нивелирование возврата из функции
так как AS3 не имеет оператора GOTO - то очень часто приходится вызывать фукнцию из фукнции...

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

Как получить код возврата функции в консоли js?
Привет! Как получить код возврата функции в отладке в консоли для JS? Спасибо.

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


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru