#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 bigbỏ qua các đối số doublevà intkiểu, tôi muốn câu trả lời là double. Các loại ở đây, nó trả về 32thay 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 bighà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).