Конструкторът за копиране (), е специален конструктор в езика за програмиране C++, който се създава, за да се направи копие на обект.

Принципно, по време на компилация, компилаторът създава служебен (системен) конструктор за копиране (default copy constructor) за всеки клас. В случай обаче, когато програмистът създаде такъв конструктор, още се нарича потребителски дефиниран (user defined) конструктор за копиране, компилаторът не създава служебен (системен).

Най-често потребителски дефиниран конструктор за копиране се налага да се създаде, когато класът притежава член-данни, които са от тип указател, т.е когато в програмата се използва динамична памет. В този случай също така се налага и да се дефинират още два специални метода към класа, които заедно с конструктора за копиране образуват Голямата тройка.

Пример за конструктор за копиране #include <iostream> #include <string.h> using namespace std;

class Example { char* ex;

public: //... Example(const Example& other); // Декларация на конструктора за копиране //... }; //... Example::Example(const Example& other) { ex = new char [strlen(other.ex) + 1]; strcpy (ex, other.ex); } //...

Категория:C++