Ми има фундаментална разлика - едното се прави върху конструиран обект, другото на голо поле.
Присвояването се състои от две части - 1. зачистване на текущия обект; 2. копиране. Освен това константите и референсите ( които са своево рода константи ) не могат да бъдат присвоявани повторно, иначе къде му е константното ...
По принцип operator= има вида:
A& A::operator=( const A& r )
{
if ( this != &r )
{
Clear();
Copy(r);
}
return *this;
}
т.е. обикновено можеш да си реюзнеш кода за копирането и чистенето, макар че първото не е препоръчително щото ша имаш излишно дефолт-конструиране на мембърите.
System Doctor Error:
Your girlfriend is pregnant.
(A)bort, (M)arry, (I)gnore?_