Принцип «Rule of Three» в программировании заключается в том, что если классу нужен один из трёх методов, то, скорее всего, ему понадобятся и два других: habr.com
- Деструктор. habr.com Специальный метод класса, который автоматически вызывается при уничтожении объекта. habr.com Он гарантирует, что все выделенные ресурсы будут корректно освобождены, когда объект больше не нужен. habr.com
- Конструктор копирования. habr.com Позволяет создавать новые объекты как копии существующих. habr.com Без явно определённого конструктора копирования компилятор предоставит стандартный, который скопирует все поля объекта. habr.com
- Оператор присваивания копированием. habr.com Позволяет одному уже существующему объекту принять состояние другого существующего объекта. habr.com Если этот оператор не будет определён явно, компилятор сгенерирует его за разработчика, но это может привести к проблемам с управлением ресурсами. habr.com
Также существует правило трёх в контексте рефакторинга кода. en.wikipedia.org dev.to Оно гласит, что два экземпляра похожего кода не требуют рефакторинга, но когда похожий код используется три раза, его следует извлечь в новую процедуру. en.wikipedia.org