Конструктор за копиране
За информацията в тази статия или раздел не са посочени източници. Въпросната информация може да е непълна, неточна или изцяло невярна. Имайте предвид, че това може да стане причина за изтриването на цялата статия или раздел. |
Конструкторът за копиране (на английски: copy constructor), е специален конструктор в езика за програмиране 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);
}
//...