Сгенерировал ли компилятор оператор присваивания для защиты от самостоятельного присваивания?
Нет, это не так. Он просто выполняет пошаговое копирование, где каждый член копируется своим собственным оператором присваивания (который также может быть объявлен программистом или сгенерирован компилятором).
Всегда ли мне нужно защищаться от самостоятельного назначения, даже если члены класса не имеют указатель типа?
Нет, если нет, если все атрибуты вашего класса (и, следовательно, их) являются POD-типами .
При написании собственных операторов присваивания вы, возможно, захотите проверить самопредставление, если хотите защитить свой класс от будущего, даже если они не содержат указателей и так далее . Также рассмотрим идиома копирования и обмена .