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

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

Войти
Регистрация
Восстановить пароль
 
Антон541
0 / 0 / 0
Регистрация: 30.10.2015
Сообщений: 8
#1

Из функции вернуть более одного значения - C++

30.10.2015, 10:39. Просмотров 288. Ответов 11
Метки нет (Все метки)

У меня есть функция:
C++
1
2
3
4
5
6
7
8
code(int y, int z){
int g=y+z;
int f=y*z;
return g,f;
}
main(){
int sum=code(5,15);
}
Как прописать в main чтобы функция выдавала два значения. Ведь при присваивании происходит присваивание только одного.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.10.2015, 10:39
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Из функции вернуть более одного значения (C++):

Как вернуть больше одного значения из функции? - C++
здрасти, как быть если функция должна возвратить не 1 значение а 2?

Вернуть из функции 2 значения - C++
Как вернуть из функции 2 значения? Нужно вернуть строку и ее длину, но чтобы функция SendData() не вызывалась 2 раза. Сейчас узнаю длину...

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

Как вернуть сразу 2 значения из функции? - C++
Есть функция, которая генерирует 2 параметра. Как сделать так, чтобы функция их вернула? Оба сразу?

Как вернуть из функции два значения - C++
Доброго времени суток! Подскажите, пожалуйста, как вернуть два значения: row и column из функции. Спасибо! void ReadM(long double **mat,...

Как вернуть из функции два значения? - C++
Подскажите,как вернуть из ф-ции 2 значения .Вроде ,как то можно с помощью pair ,но как здесь это применить?Заранее спасибо Source.cpp ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
zss
Модератор
Эксперт С++
6358 / 5922 / 1919
Регистрация: 18.12.2011
Сообщений: 15,218
Завершенные тесты: 1
30.10.2015, 10:43 #2
C++
1
2
3
4
5
6
7
8
9
10
11
void code(int y, int z,int& g,int& f)
{
   g=y+z;
   f=y*z;
}
int main()
{
   int s1,s2;
   code(5,15,s1,s2);
   cout<<s1<<' '<<s2<<endl;
}
rikimaru2013
C++ Game Dev
2429 / 1123 / 240
Регистрация: 30.11.2013
Сообщений: 3,673
30.10.2015, 10:49 #3
www.cplusplus.com/reference/utility/pair/
Kerry_Jr
Модератор
Эксперт PHP
2184 / 1980 / 692
Регистрация: 14.05.2014
Сообщений: 5,788
Записей в блоге: 1
Завершенные тесты: 5
30.10.2015, 10:52 #4
Антон541, можно сделать так, как написал zss, а можно так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
using namespace std;
struct Code
{
    int g, f;
};
 
Code code(int x, int y)
{
    Code temp {x+y, x*y};
    return temp;
}
 
int main()
{
    Code sum = code (5, 15);
    cout << sum.g << ' ' << sum.f << endl;
}
ishellstrike
77 / 13 / 7
Регистрация: 23.10.2015
Сообщений: 83
30.10.2015, 13:08 #5
std::tuple как вариант
rikimaru2013
C++ Game Dev
2429 / 1123 / 240
Регистрация: 30.11.2013
Сообщений: 3,673
30.10.2015, 13:23 #6
Цитата Сообщение от Kerry_Jr Посмотреть сообщение
struct Code
{
* * int g, f;
};
Врядли так можно
Kastaneda
Форумчанин
Эксперт С++
4652 / 2860 / 228
Регистрация: 12.12.2009
Сообщений: 7,268
Записей в блоге: 2
Завершенные тесты: 1
30.10.2015, 13:30 #7
rikimaru2013, почему?
rikimaru2013
C++ Game Dev
2429 / 1123 / 240
Регистрация: 30.11.2013
Сообщений: 3,673
30.10.2015, 13:33 #8
Проверил - компилится) Первый раз вижу такое)) Мне бы даже в голову не пришло так написать поля (((
Kastaneda
Форумчанин
Эксперт С++
4652 / 2860 / 228
Регистрация: 12.12.2009
Сообщений: 7,268
Записей в блоге: 2
Завершенные тесты: 1
30.10.2015, 13:48 #9
rikimaru2013, обычная же запись
C++
1
2
3
int a, b, c, d;
std::string str1, str2, str3;
MyType ob1, ob2, ob3;
rikimaru2013
C++ Game Dev
2429 / 1123 / 240
Регистрация: 30.11.2013
Сообщений: 3,673
30.10.2015, 14:40 #10
Цитата Сообщение от Kastaneda Посмотреть сообщение
обычная же запись
Для перечисления полей методов НЕ обычно


класса*
ishellstrike
30.10.2015, 14:58
  #11

Не по теме:

rikimaru2013, не знаю что вас удивило, даже у Страуструпа в "Язык программирования С++" самое первое упоминание о классах выглядит так

C++
1
2
3
4
5
6
7
8
class date {
 int month, day, year;
 public:
 void set(int, int, int);
 void get(int*, int*, int*);
 void next();
 void print()
};

Tulosba
:)
Эксперт С++
4393 / 3236 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
30.10.2015, 15:23 #12
Совместно с std::tuple удобно использовать std::tie (не нужно создавать лишних переменных):
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <string>
#include <tuple>
 
using namespace std;
 
tuple<int, double, string> f() {
    return make_tuple(42, 100.500, string("kokoko"));
}
 
int main()
{
    int i = 999;
    double d = 123.456;
    string s = "ololo";
    
    tie(i,ignore,s) = f();
    
    cout << i << '\n' << d << '\n' << s << endl;
    
    return 0;
}
Код
42
123.456
kokoko
Live example
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.10.2015, 15:23
Привет! Вот еще темы с ответами:

Как вернуть сразу 2 значения массива в функции? - C++
Собственно дан у меня например массив &quot;aa&quot;, где l-левая граница, а r-правая. При выполнении кода мне надо сразу вернуть эти два стоящих...

return из функции более одного элемента как это сделать - C++
struct { string train_string; int locomotiv; }train; if(index &lt; n) { return train.train_string;

Необходимо вернуть значение функции из Булевского значения и посчитать факториал - C++
Стоит задача- Написато программу которая спрашивает пользователя - Рост, вес, и возраст а затем выдаёт размер одежды по след. формулам: ...

Задача дизайна - прокинуть детали низкоуровневой реализации на более высокий уровень и вернуть обратно - C++
Привет! Задача возникла на работе. Мозговым штурмом было предложено 100500 реализаций, одно из них выбрали, но хотелось бы посмотреть...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
30.10.2015, 15:23
Ответ Создать тему
Опции темы

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