我希望能够返回两个值中的较大值,无论是整数,双精度还是类。我已经为我想要使用的类重载了比较运算符。该函数在main中给出了链接器错误。这是代码:
template <typename tType>
void returnGreater(tType &A, tType &B)
{
if(A > B)
{
cout << "A is greater"; //testing
return A;
}
else
{
cout << "B is greater"; //testing
return B;
}
}
答案 0 :(得分:2)
更改退货类型。
template <typename tType>
tType& returnGreater(tType &A, tType &B)
^^^^^^ void is not the right return type for what you want to do.
PS 当您混合使用const
和非const
参数时,上述功能无法正常工作。您必须弄清楚如何解决该问题。
例如,您无法使用:
int i = 10;
int j = returnGreater(i, 20);
您可以使用显式类型来完成这项工作:
int j = returnGreater<int const>(i, 20); // OK.
答案 1 :(得分:0)
检查这个....
#include <iostream>
using namespace std;
template <typename tType>
tType& returnGreater(tType &A, tType &B){
if(A > B)
{
cout << "A is greater"; //testing
return A;
}
else
{
cout << "B is greater"; //testing
return B;
}
}
int main(){
int a,b;
cin>>a>>b;
cout<< returnGreater(a,b)<<endl;
return 0;
}
您的退货类型不正确。