As long as new issues are growing out of my previous question Overloaded assignment operator causes warning about recursion, I was legitimately urged to post this as new one
It is really a hack over c++ design, but you can use placement new on 'this' to do that. I.e.
MyClass::MyClass(ReferenceType& referenceTarget): myReference(referenceTarget) {} MyClass& MyClass::operator=(const MyClass& other) { new (this) MyClass(other.myReference); return *this; }