ciao ragazzi
perchè in c++ se una funzione deve restituire più di un valore devo usare il passaggio per riferimento, e il passaggio
per valore non mi da il risulato atteso?
grazie
Fabbioo ha scritto:Perché, per configurazione dello stesso c++, quando si sfrutta l'istruzione $return$ è possibile restituire uno ed un solo valore (avrai già sentito parlare del classico $return 0$).
Fabbioo ha scritto:Perché, per configurazione dello stesso c++, quando si sfrutta l'istruzione $return$ è possibile restituire uno ed un solo valore
#include <iostream>
#include <tuple>
#include <cmath>
double compute_area(
double const a,
double const b,
double const c)
{
auto s = (a + b + c) / 2;
return std::sqrt(s * (s - a) * (s - b) * (s - c));
}
std::tuple<double, double> compute_area_and_perimeter(
double const a,
double const b,
double const c)
{
auto area = compute_area(a, b, c);
auto perimeter = a + b + c;
return std::make_tuple(area, perimeter);
}
int main()
{
auto a = 3.0;
auto b = 4.0;
auto c = 5.0;
auto [area, perimeter] = compute_area_and_perimeter(a, b, c);
std::cout
<< "area: " << area << '\n'
<< "perimeter: " << perimeter << '\n';
}
Visitano il forum: Nessuno e 1 ospite