#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는 아님)을 갖는 두 매개 변수가 모두 필요합니다.