#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);
}
Здесь я использую шаблоны в CPP, поэтому, когда я вызываю функцию, big
обходя аргументы типа double
и int
, я хочу получить ответ, который есть double
. Тип здесь, он возвращает 32
вместо 32.8
.
Как получить желаемый результат? Как написать правильный тип возвращаемого значения big
функции?
std::max
это реализовано. Тип возврата функции должен быть известен во время компиляции в C ++. Таким образом, этот тип возврата не может зависеть от значения времени выполнения ваших параметров. Вот почему для такой функции вам нужно, чтобы оба параметра имели одинаковый тип (т. Е. Имели тип X, но не Y).