サンプル

class MyClass {
public:
MyClass& operator=(const MyClass& rhs);

private:
int field;
};


MyClassMyClass::operator=(const MyClass& rightValue)
{
if(rightValue.field == this.field){
return rightValue;
}
}

ソリューション
自身と同等であるかどうかを、最初に代入演算子内で検査します。  

class MyClass {
public:
MyClass& operator=(const MyClass& rhs);

private:
int field;
};


MyClassMyClass::operator=(const MyClass& rightValue)
{

if(this == &rightValue){    //アドレスを比較します
return *this;
}

if(rightValue.field == this.field){
return *this;
}
}