【发布时间】:2019-12-17 18:03:12
【问题描述】:
我在测试中遇到过这个问题,不知道为什么会产生错误。
#include <iostream>
#include <string.h>
using namespace std;
template<typename T>
T Min(T a, T b)
{
if (a <= b)
return a;
else
return b;
}
class A
{
public:
int n;
A(int n = 0) : n(n) {}
};
int main()
{
A a1(2), a2(1);
cout << Min(a1, a2).n;
return 0;
}
我尝试输入并运行它,其中一条错误消息是这样的。
error: no match for 'operator<=' (operand types are 'A' and 'A')
为什么会这样?如果有人能解释一下,将不胜感激,谢谢!
【问题讨论】:
标签: c++ class c++11 templates operator-overloading