Этот оператор имеет отношение к компилятору, автоматически генерирующему функцию оператора присваивания по умолчанию для класса, который вы пишете (то есть определяемый пользователем тип). Назначение по умолчанию работает путем копирования всех членов в новый экземпляр. Этот оператор охватывает три случая, когда назначение по умолчанию не может быть сгенерировано:
1) Когда элемент является ссылкой (то есть ссылается на экземпляр переменной, такой как указатель)
class Foop {
int& reference;
};
2) Когда переменная-член постоянна
class Foople {
const int someConst;
};
3) Если в каком-то другом классе нет конструктора копирования, и у вас есть переменная-член этого типа, очевидно, что ее нельзя скопировать с помощью метода по умолчанию (который использует конструкторы копирования)
class Uncopyable {
private:
Uncopyable(Uncopyable const& other);
};
class Fleep {
Uncopyable uncopyable;
};
В этих случаях вам потребуется написать собственный оператор присваивания (или, возможно, обойтись без него).