#cpp #функции
Суть : Допустим у нас есть функция, в результате выполнения действий внутри нее мы получаем значения переменных, которые нам необходимо вернуть. Как это сделать? И как при вызове присвоить эти значения двум переменным одновременно?
Ответы
Ответ 1
Варианты: вернуть структуру или кортеж (пару) с двумя полями использовать передачу параметров по ссылке или через указатель. Например, считать сумму и разность двух переменных: std::pairsumdif(ina a, int b) { return pair (a+b,a-b); } void sumdif(int a, int b, int& sum, int& dif) { sum = a+b; dif = a-b; } ... int a = 5, b = 7; auto p = sumdif(a,b); cout << "Sum = " << p.first << ", Dif = " << p.second << endl; или int a = 5, b = 7, s, d; sumdif(a,b,s,d); cout << "Sum = " << s << ", Dif = " << d << endl; Ответ 2
Дополню ответ @Harry Если под рукой компилятор с поддержкой 11 ого (и выше) стандарта, то можно воспользоваться std::tuple и вернуть его из функции, эдакое обобщение на std::pair для произвольноно числа элементов с разными типами std::tuplef() { std::tuple t = { -1, 123 }; // ... return t; } std::tuple g() { std::tuple t = { -1, false, 123 }; // ... return t; }
Комментариев нет:
Отправить комментарий