#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);
}
Aqui estou usando modelos no CPP; portanto, quando chamo a função big
ignorando argumentos de double
e int
digite, quero a resposta de retorno que é double
. O tipo aqui, ele retorna em 32
vez de 32.8
.
Como obtenho a saída desejada? Como escrever um tipo de retorno de big
função adequado ?
std::max
é implementado. O tipo de retorno de uma função deve ser conhecido em tempo de compilação em C ++. Portanto, você não pode ter esse tipo de retorno dependente do valor de tempo de execução dos seus parâmetros. É por isso que, para essa função, você precisa que os dois parâmetros tenham o mesmo tipo (ou seja, possuem o tipo X, mas não o Y).