看到这个非常简单的代码:
struct A
{
bool operator ==(const int &t)
{
return *this == t;
}
};
void main()
{
A p;
p == 2;// this code loops for ever!!!
}
剂量任何人都知道为什么代码循环永远?! 实际上,运算符==()递归调用自身! 非常感谢
答案 0 :(得分:5)
问问自己。
什么是*this
?这是struct A
。
那么*this == t
是什么?它基本上是A::operator==()
,带有参数t。
您正在调用相同的功能。