Автор Тема: создание фукции с 2-мя возвращаемыми результатами  (Прочитано 1150 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн ads

  • Губернский секретарь
  • **
  • Сообщений: 40
  • Репутация: 0
возможно ли создать функцию с 2 мя возвращаемыми результатами одного и того же типа или разных типов???

Если баян прошу простить искал искал не нашел ничего

Заранее спасибо

Оффлайн razb

  • Глобальный модератор
  • Надворный советник
  • *****
  • Сообщений: 420
  • Репутация: 13
  • Пол: Мужской
Передавай аргументы по указателю или по ссылке.
"Интеллект - это способность избежать выполнения работы,
но, тем не менее, сделать так, чтобы она была выполнена" Linus Torvalds.

Оффлайн ads

  • Губернский секретарь
  • **
  • Сообщений: 40
  • Репутация: 0
а как это будет выглядеть??? Можно примерчик если вам не тяжко

Оффлайн razb

  • Глобальный модератор
  • Надворный советник
  • *****
  • Сообщений: 420
  • Репутация: 13
  • Пол: Мужской
Пример с ссылками:
Код: (cpp) [Выделить]
#include <iostream>
    using namespace std;

void func(int& a, int& b)
{
    ++a; --b;
}

int main(int argc, char* argv[])
{
    int a = 10, b = 10;

    func(a, b);
    cout << a << endl << b << endl;
   
    return (0);
}

с указателями будет почти аналогично, только необходимо будет передавать адрес и разыменовывать указатель, в любой литературе по С\С++ это расписано.
"Интеллект - это способность избежать выполнения работы,
но, тем не менее, сделать так, чтобы она была выполнена" Linus Torvalds.

Оффлайн ads

  • Губернский секретарь
  • **
  • Сообщений: 40
  • Репутация: 0
Пример с ссылками:
Код: (cpp) [Выделить]
#include <iostream>
    using namespace std;

void func(int& a, int& b)
{
    ++a; --b;
}

int main(int argc, char* argv[])
{
    int a = 10, b = 10;

    func(a, b);
    cout << a << endl << b << endl;
   
    return (0);
}

с указателями будет почти аналогично, только необходимо будет передавать адрес и разыменовывать указатель, в любой литературе по С\С++ это расписано.
да это я знаю, я имел ввиду возвращаемые значение а не входные параметры функции, пример
float f(int a){
a*a
return a;
}

обращаемся v=f(20);
данная фукция у нас возращает значение а*а кторое вспоследствие присваивается к переменной v. Как сделать тоже самое только чтобы фукция возвращала 2 значения скажем а*а и d=true;

Оффлайн razb

  • Глобальный модератор
  • Надворный советник
  • *****
  • Сообщений: 420
  • Репутация: 13
  • Пол: Мужской
Ты видимо не хочешь увидеть ответ в коде.
Параметры a и b определяются в одной ф-ции и изменяются во второй, через них и возвращается результат.
"Интеллект - это способность избежать выполнения работы,
но, тем не менее, сделать так, чтобы она была выполнена" Linus Torvalds.

Оффлайн kitaets

  • Губернский секретарь
  • **
  • Сообщений: 33
  • Репутация: 1
Чуть ранее был не прав! Тяжело с такими... razb - сочувствую...

Оффлайн history

  • Коллежский секретарь
  • ***
  • Сообщений: 60
  • Репутация: 0
  • Пол: Мужской
Если тебе не нравиться то что тебе предложили. Тогда попробуй такое
struct Newreturn {
int a;
int b;
AnsiString S;
bool b;
...
}

и пишеш функцию типа:
Newreturn fun()
{
Newreturn S;
//меняешь всё что требуется
return S;
}

И дальше уже пользуешься структурой.