Оператор назначения копирования не вызывает операторов назначения копирования базовых подобъектов
Этот дефект возникает, когда оператор назначения производного класса не вызывает оператор назначения копирования его базового класса.
Если этот дефект возникает, если вы не инициализируете представители данных базового класса явным образом в производном операторе назначения классов, оператор инициализирует представители неявно с помощью конструктора по умолчанию базового класса. Поэтому возможно, что представителям данных базового класса не будут присвоены правильные значения.
Если пользователи вашего класса ожидают, что оператор назначения выполнит полное назначение между двумя объектами, они могут столкнуться с непреднамеренными последствиями.
Вызовите оператор назначения копирования базового класса из оператора назначения производного класса.
Даже если представители данных базового класса не private
, и вы явным образом инициализируете представителей данных базового класса в производном операторе назначения копирования классов, замените эту явную инициализацию вызовом оператора назначения копирования базового класса. В противном случае определите, почему вы сохраняете явную инициализацию.
Группа: Объектно-ориентированная |
Язык: C++ |
По умолчанию: On для рукописного кода, off для сгенерированного кода |
Синтаксис командной строки: MISSING_BASE_ASSIGN_OP_CALL |
Влияние: Высокий |