#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).