#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ประเภทของที่นี่ก็จะส่งกลับแทน3232.8
ฉันจะได้รับผลลัพธ์ที่ต้องการได้อย่างไร จะเขียนbigฟังก์ชั่นการส่งคืนที่เหมาะสมได้อย่างไร?
std::maxการใช้งาน ต้องทราบชนิดการคืนค่าของฟังก์ชันในเวลารวบรวมใน C ++ ดังนั้นคุณไม่สามารถมีชนิดส่งคืนนี้ขึ้นอยู่กับค่ารันไทม์ของพารามิเตอร์ของคุณ นี่คือสาเหตุที่ฟังก์ชั่นดังกล่าวคุณต้องการพารามิเตอร์ทั้งสองเพื่อให้มีประเภทเดียวกัน (เช่นมีประเภท X แต่ไม่ใช่ Y)