У класса могут быть следующие виды конструкторов:
Конструктор по умолчанию (Default Constructor): Не принимает аргументов. Если явно не объявлен, компилятор может сгенерировать его автоматически, если класс не содержит пользовательских конструкторов и не наследуется от класса с пользовательским конструктором.
cpp
Конструктор копирования (Copy Constructor): Принимает константную ссылку на объект того же класса. Используется для создания нового объекта как копии существующего.
cpp
Конструктор перемещения (Move Constructor): Принимает rvalue-ссылку на объект того же класса. Используется для создания нового объекта путем "перемещения" ресурсов (например, владения памятью) из временного объекта, оставляя временный объект в валидном, но неопределенном состоянии. Появился в C++11.
cpp
Параметризованные конструкторы (Parameterized Constructors): Принимают один или несколько аргументов для инициализации объекта.
cpp