#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);
}
Ở đây tôi đang sử dụng các mẫu trong CPP, vì vậy khi tôi gọi hàm big
bỏ qua các đối số double
và int
kiểu, tôi muốn câu trả lời là double
. Các loại ở đây, nó trả về 32
thay vì 32.8
.
Làm thế nào tôi có được đầu ra mong muốn của tôi? Làm thế nào để viết một kiểu trả về đúng của big
hàm?
std::max
được thực hiện. Kiểu trả về của một hàm phải được biết tại thời điểm biên dịch trong C ++. Vì vậy, bạn không thể có kiểu trả về này phụ thuộc vào giá trị thời gian chạy của các tham số. Đây là lý do tại sao đối với chức năng như vậy, bạn cần cả hai tham số để có cùng loại (nghĩa là có loại X, nhưng không phải là Y).