class binaryOperators
{
public:
int i;
binaryOperators (int tempI = 0)
{
i = tempI;
}
binaryOperators operator+ (const binaryOperators &right);
};
binaryOperators binaryOperators :: operator+ (const binaryOperators &right)
{
return binaryOperators (*this + right.i);
}
binaryOperators operator+ (const binaryOperators &left, const binaryOperators &right)
{
return binaryOperators (left.i + right.i);
}
int main ()
{
binaryOperators obj (10);
obj = 11 + obj;
obj = obj + 11;
return 0;
}
所以,这个语句
obj = 11 + obj;
调用了带有明确参数规定的函数。
而这个语句obj = obj + 11;
调用了类的成员函数。很好。
问题是第二个调用导致了无限循环。原因是什么,如何避免?
binaryOperators
的声明。 - Luchian Grigore