operator ==()永远循环

时间:2016-11-08 11:01:37

标签: c++11 operators

看到这个非常简单的代码:

struct A
 {   
     bool operator ==(const int &t)
     {
         return *this == t;
     }
 };
void main()
{
    A p;
    p == 2;// this code loops for ever!!! 
}

剂量任何人都知道为什么代码循环永远?! 实际上,运算符==()递归调用自身! 非常感谢

1 个答案:

答案 0 :(得分:5)

问问自己。

什么是*this?这是struct A

那么*this == t是什么?它基本上是A::operator==(),带有参数t。

您正在调用相同的功能。