Ну, это оператор присваивания. Это помогает определить, как другие объекты (того же самого и других типов) назначаются экземпляру класса, в котором он определен.
Правильный синтаксис (при условии, что ваш класс называется 'Object'):
const Object& operator=(const Object& other)
{
// copy members, one at a time.
this->member1 = other.member1;
return *this;
}
Обратите внимание, что тип возвращаемого значения является постоянным. Это позволяет избежать семантически неверных, синтаксически правильных утверждений, таких как:
Object A, B, C;
(A = B) = C;
Если вы определяете тип возвращаемого значения как константу, приведенный выше код не будет компилироваться (достаточно разумно, так как он действительно испорчен), в то время как опускание const позволит скомпилировать такой плохой код, и, конечно же, кто-то попытается, выяснить, что не так.
P.S. Возможно, вы захотите обдумать это: что произойдет, если вы пропустите const из возвращаемого типа и выполните (A = B) = C; код