C++ Программирование в среде С++ Builder 5

         

Конструктор копии


Конструктор копии является конструктором специального вида, который принимает в качестве параметра ссылку или константную ссылку на объект данного класса. Он автоматически вызывается компилятором, когда вновь создаваемый объект инициализируется значениями существующего объекта:

class Time {

int hr, min;

public:

Time(int h, int m): hr(h), min(m) {}

Time(const Time &src) // Конструктор копии.

{ hr = src.hr; min = src.min; } //

};

int main()

(

Time start (17,45); // Вызывается первый конструктор.

Time current = start; // Вызывается конструктор копии.

return 0;

}

Если вы не предусмотрели в классе конструктор копии, компилятор генерирует конструктор копии по умолчанию, который производит простое копирование данных объекта в новый представитель класса. Если класс содержит какие-то указатели или ссылки, то такое копирование скорее всего будет бессмысленным или опасным.

Иногда, когда копирование объектов класса в принципе не может привести ни к чему хорошему, имеет смысл объявить конструктор копии (это может быть просто “пустышка”) в закрытом разделе определения класса. Тогда пользователь класса не сможет создавать копии существующих объектов.



Содержание раздела