use*_*501 1 c++ operator-overloading
重载operator+=and时是否需要自赋值检查,如下例所示operator-=?
例子:
class A
{
A operator+=(const A& a)
{
if(this != &a)
{
// operations
}
return *this;
}
}
Run Code Online (Sandbox Code Playgroud)
在 C++ 中重载运算符 += 和 -= 时是否需要自赋值检查,如下例所示?
不它不是。事实上,这样做似乎是错误的。
使用以下内容是完全合法且语义上有效的:
int i = 10;
i += i;
Run Code Online (Sandbox Code Playgroud)
这里的期望是i将20在该操作结束时设置为。