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