重载 <= 运算符,但程序以退出代码 -1073741571 (0xC00000FD) 结尾



我正试图重载<=操作员,但程序有错误

进程结束,退出代码为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最终会无限期地退出堆栈,因为它是一个递归调用。尝试直接比较作为参数传递的两个对象的内容。

最新更新