我正在尝试重载<=运算符,但是程序有错误
进程结束,退出代码为-1073741571(0xC00000FD)
op.h
bool operator<=(const Date& d1, const Date& d2)
{
return d1 <= d2;
}
main.cpp
cout << "Checking <=" << endl;
assert(Date(1,1,2000) <= Date(2,1,2000));
assert(!(Date(2,1,2000) <= Date(1,1,2000)));
assert(Date(2,1,2000) <= Date(1,2,2000));
assert(Date(2,2,2000) <= Date(1,1,2001));
cout << "Checking <= Complete!" << endl;
这是怎么回事?
答案 0 :(得分:1)
以您为例,您致电
bool operator<=(const Date& d1, const Date& d2)
无限期地,它最终会退出堆栈,因为这是一个递归调用。 尝试直接比较作为参数传递的两个对象的内容。