Используйте правила пяти или нуля

Используйте правило нуля или реализуйте полную семантику копирования и перемещения для класса (правило пяти)

Компилятор может неявно создавать следующие специальные функции в классах:

  • Конструктор по-умолчанию
  • Конструктор копирования
  • Конструктор перемещения
  • Копирующий оператор присваивания
  • Перемещающий оператор присваивания
  • Деструктор

Избегайте написания этих функций, если это возможно для ваших классов (правило нуля). В противном случае, вы должны написать все эти функции (правило пяти).