Скопируйте и переместите конструкторов и скопируйте присвоение и переместитесь, операторы присваивания должны быть объявлены защищенным или заданным "=delete" в базовом классе.
Скопируйте и переместите конструкторов и скопируйте присвоение и переместитесь, операторы присваивания должны быть объявлены защищенным или заданным "=delete" в базовом классе.
Указатели на производные классы совместимы с типом с указателями на базовые классы. Указатель может быть объектом базового класса в то время как указывающий на объект производного класса. Когда такой объект копируется, основной конструктор копии вызывается, и скопированный объект имеет только основную часть исходного объекта. Чтобы избежать непреднамеренного разрезания во время копии и переместиться, подавите эти операции в базовом классе:
Объявление копии и конструкторов перемещения и присвоения копии и операторов присваивания перемещения как protected
.
Определение копии и конструкторов перемещения и присвоения копии и операторов присваивания перемещения как "=delete
".
Polyspace® отмечает эти специальные функции членства базового класса, когда они не объявляются protected
или заданный как =delete
:
Копирование конструктора
Перемещение конструктора
Копирование оператора присваивания
Перемещение оператора присваивания
Polyspace указывает, какая специальная функция членства нарушает это правило.
Если вы ожидаете нарушение правила, но не видите его, обратитесь к Кодированию Стандартных Нарушений, Не Отображенных.
Группа: Специальные функции членства |