#include <iostream>
using namespace std;
template <class X, class Y>
Y big(X a, Y b)
{
if (a > b)
return (a);
else return (b);
}
int main()
{
cout << big(32.8, 9);
}
Qui sto usando i modelli in CPP, quindi quando chiamo la funzione big
bypassando argomenti double
e int
tipo, voglio la risposta di ritorno che è double
. Il tipo qui, restituisce 32
invece di 32.8
.
Come ottengo l'output desiderato? Come scrivere un corretto tipo di big
funzione di ritorno ?
std::max
viene implementato. Il tipo restituito di una funzione deve essere noto al momento della compilazione in C ++. Pertanto, questo tipo di ritorno non può dipendere dal valore di runtime dei parametri. Questo è il motivo per cui per tale funzione, è necessario che entrambi i parametri abbiano lo stesso tipo (ovvero, abbiano tipo X, ma non Y).