重载operator+=
和operator-=
时是否需要进行以下示例的自我分配检查?
例:
class A
{
A operator+=(const A& a)
{
if(this != &a)
{
// operations
}
return *this;
}
}
最佳答案
不它不是。实际上,这样做似乎是错误的。
使用以下内容完全合法且在语义上有效:
int i = 10;
i += i;
期望在该操作结束时将
i
设置为20
。