我正试图重载<=操作员,但程序有错误
进程结束,退出代码为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;
这里发生了什么?
在您的情况下,您调用
bool operator<=(const Date& d1, const Date& d2)
wich最终会无限期地退出堆栈,因为它是一个递归调用。尝试直接比较作为参数传递的两个对象的内容。