Какие конструкторы и методы реализуются по умолчанию?



Начиная с C++11 каждый класс, помимо конструктора по умолчанию, имеет следующие 5 дефолтных операций:



1. Конструктор копирования (Copy Constructor):

• Принимает объект своего же типа в качестве параметра

• Создает новый объект, инициализируя его значениями из переданного объекта



2. Оператор присваивания (Copy Assignment Operator):

• Присваивает значения одного объекта другому

• Вызывается при использовании оператора присваивания (=) между двумя объектами



3. Конструктор перемещения (Move Constructor):

• Это нововведение в C++11

• Принимает rvalue-ссылку на объект своего типа в качестве параметра



4. Оператор перемещения (Move Assignment Operator):

• Также нововведение в C++11

• Принимает rvalue-ссылку на объект своего типа в качестве параметра



5. Деструктор (Destructor):

• Освобождает ресурсы, занимаемые объектом, при его уничтожении (выходе из области видимости, удалении из контейнера)