我收到运行时错误,有没有人能弄清楚为什么在这个程序中有无限调用以及哪一行正在执行
这是我的代码
class opOverload{
public:
bool operator==(opOverload temp){
if(*this == temp){
cout << "both same";
return true;
}
else{
cout <<"both different";
return false;
}
}
};
int main() {
// your code goes here
opOverload a1,a2;
a1==a2;
return 0;
}
答案 0 :(得分:0)
因为*this == temp
相当于(*this).operator==(temp)
,显然会调用您刚才写的operator==
。
答案 1 :(得分:0)
*this == temp
将再次调用您的运算符重载,因此您基本上正在执行:
A(){
A();
}
这是一个自我递归函数调用,你显然没有取得进展(对于基本情况,更糟糕的是......没有基本情况)