Операция присваивания может быть определена в любом классе по умолчанию как конструктор копирования. Эта операция вызывается каждый раз, когда одному объекту нужно присвоить значение другого. Если класс содержит поля, память под которые выделяется динамически, то необходимо определить собственный оператор присваивания. Операция должна возвращать ссылку на объект для которого она вызывалась и принимать в качестве параметра один аргумент: ссылку на присваиваемый объект.
Пример 1

const monstr &operator = (const monstr &M)
{
/* проверка на самоприсвивание */
if(& == this) return *this;

if(name) delete [] name;

if(M.name)
{
name = new char[strlen(M.name)+1];
strcpy(name, M.name)
}
else name = 0;

health = M.health;
skin = M.skin;
return *this;
}

Примечание: возврат из функции указателя на объект делает возможным цепочку присваиваний.

monstr A(10), B, C;
C=B=A;

Операцию присваивания можно определить как метод класса. Операция присваивания не наследуется.