В C++ конструктор копирования — это особый тип конструктора, который создает новый объект как копию существующего объекта. Это функция-член класса, которая используется для создания нового объекта, являющегося копией существующего объекта того же класса.
Конструктор копирования берет ссылку на объект того же класса и создает новый объект, который является копией переданного объекта. Новый объект создается с теми же значениями для всех его переменных-членов, что и исходный объект.
Вот пример конструктора копирования для простого класса:
class MyClass { public: MyClass() { // default constructor } MyClass(const MyClass& other) { // copy constructor // create a new object that is a copy of the other object memberVar1 = other.memberVar1; memberVar2 = other.memberVar2; } private: int memberVar1; float memberVar2; };
В этом примере конструктор копирования принимает ссылку на существующий объект MyClass
в качестве параметра и создает новый объект MyClass
, который является копией переданного объекта. Новый объект имеет те же значения для memberVar1
и memberVar2
, что и исходный объект.
Конструктор копирования используется в различных ситуациях, например, когда объект передается по значению в функцию, когда объект возвращается по значению из функции или когда объект создается как копия другого объекта. Конструктор копирования также используется контейнерами стандартной библиотеки C++, такими как vector
и map
, когда им необходимо копировать элементы.