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

return из функции более одного элемента как это сделать - C++

Восстановить пароль Регистрация
 
mind66
3 / 3 / 0
Регистрация: 27.09.2009
Сообщений: 41
12.05.2010, 15:07     return из функции более одного элемента как это сделать #1
C++
1
2
3
4
5
    struct
    {
        string train_string;
        int locomotiv;
    }train[n];

C++
1
2
3
4
5
6
7
8
9
10
11
    if(index < n)
    {
        return train[index].train_string;
        return train[index].locomotiv;
    }
    else
    {
 
        return "Такого не существует";
        return 3;
    }
это в функции как это принять?
у меня получается что он возвращает только 1 элемент из 2х.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.05.2010, 15:07     return из функции более одного элемента как это сделать
Посмотрите здесь:

Найти максимальное из чисел встречающихся в матрице более одного раза. Сделать используя указатели и классы C++
C++ Как это сделать?
C++ Как это сделать ? [c++]
Как это сделать? C++
Как можно сделать программу более компактнее C++
C++ Выскакивают ошибки конвертации одного типа в другой, как возможно это исправить?
C++ Из функции вернуть более одного значения
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Tyoma
42 / 42 / 8
Регистрация: 12.05.2010
Сообщений: 113
Завершенные тесты: 3
12.05.2010, 15:50     return из функции более одного элемента как это сделать #2
Ну как я понимаю как только функция возвращает значение, она сразу завершается, для передачи нескольких элементов я думаю надо функцией возвращать структуру в данном случае.

А просто так вернуть несколько различных элементов я не знаю как.
Mur3ik
102 / 102 / 4
Регистрация: 12.05.2010
Сообщений: 232
12.05.2010, 15:55     return из функции более одного элемента как это сделать #3
Цитата Сообщение от Tyoma Посмотреть сообщение
...как только функция возвращает значение, она сразу завершается...
это да,

C++
1
2
3
4
5
6
7
 
       else
        {
 
                return "Такого не существует";
                return 3;
        }
исправить на
C++
1
2
3
4
5
6
7
8
 
       else
        {
             return 3;
        }
//потом в майне
if(func==3)
{cout<<"Такого не существует";}
или просто тупо вывести в функции... ведь значение
"Такого не существует";
больше нигде использовать не надо... тогда
C++
1
2
3
4
5
6
7
 
       else
        {
 
                cout<<"Такого не существует";
                return 3;
        }
mind66
3 / 3 / 0
Регистрация: 27.09.2009
Сообщений: 41
12.05.2010, 15:59  [ТС]     return из функции более одного элемента как это сделать #4
да вы правильно понимаете, и точно такая же структура принимает данные но я не знаю как это реализовать



пытаюсь передать от структуры к структуре:

error C2679: binary '=' : no operator found which takes a right-hand operand of type 'int' (or there is no acceptable conversion)
Tyoma
42 / 42 / 8
Регистрация: 12.05.2010
Сообщений: 113
Завершенные тесты: 3
12.05.2010, 16:06     return из функции более одного элемента как это сделать #5
Ну можно и просто вывести, но выше:

C++
1
2
3
4
        {
                return train[index].train_string;
                return train[index].locomotiv;
        }
Вот тут функция вернет только train[index].train_string а до другой переменной не дойдет...

Добавлено через 2 минуты
Сделайте тип функции - название структуры, и возвращайте полностью структуру а не отдельные ее данные
mind66
3 / 3 / 0
Регистрация: 27.09.2009
Сообщений: 41
12.05.2010, 16:06  [ТС]     return из функции более одного элемента как это сделать #6
а можно как то передавать в return более одного элемента и как это делается?
&Alex&
 Аватар для &Alex&
19 / 19 / 1
Регистрация: 21.03.2010
Сообщений: 221
12.05.2010, 16:12     return из функции более одного элемента как это сделать #7
Цитата Сообщение от mind66 Посмотреть сообщение
а можно как то передавать в return более одного элемента и как это делается?
Нет. С помощью return можно возвратить только одно значение.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.05.2010, 16:14     return из функции более одного элемента как это сделать
Еще ссылки по теме:

Как это сделать C++
Исходники Boost, как пособие для изучения C++ на более продвинутом уровне: хорошая ли это идея? C++
C++ Как сделать это?
Не работает передача объекта из одного класса в другой через return C++
C++ не удается передать объект из одного класса в другой посредством return

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

Или воспользуйтесь поиском по форуму:
Tyoma
42 / 42 / 8
Регистрация: 12.05.2010
Сообщений: 113
Завершенные тесты: 3
12.05.2010, 16:14     return из функции более одного элемента как это сделать #8
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
struct str {
    int n;
    char *a;
};
 
str p;
 
str func(str p) {
    p.n = 123;
    p.a = "123123";
    return p;
}
 
int main() {
    str n;
    n = func(p);
    cout << n.a << " " << n.n;
        return 0;
}
вот например в данном примере я возвращаю структуру функцией func, а потом другую структуру вывожу.
Yandex
Объявления
12.05.2010, 16:14     return из функции более одного элемента как это сделать
Ответ Создать тему
Опции темы

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