Конструктор копирования

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

 

Например:

 

К::К(const &К) { /* тело конструктора */ };

 

где К — имя класса.

Этот конструктор вызывается в тех случаях, когда новый объект создается путем копирования существующего:

· при описании нового объекта с инициализацией другим объектом;

· при передаче объекта в функцию по значению;

· при возврате объекта из функции.

Если не указать ни одного конструктора копирования, то компилятор создаст его автоматически.

Следующий конструктор копирования выполняет поэлементное копирование всех полей:

class X {

int а, b; /* Вопрос для самопроверки: какими данными (приватными или публичными) являются эти переменные для класса X? */

Public:

X (int i, int j) {a = i; b = j;}

. . .

X xl (1, 2) , x2 = xl;

В этом случае происходит инициализация объекта х2 побитовым копированием всех полей объекта xl. Здесь конструктор копирования имеет форму скрытого вызова. Можно также сделать копирование явным.

 

#include <iostream.h>

class X{

Int m;

public:

X (int i) {m = i;}

Void print ();

X (X const &x) /* x — это формальное обозначение объекта

класса. Этот конструктос копирования создаст новый объект. */

{ m = x.m; }

};

Void main ()

{

X a(1);

X b = a;

/* С помощью объекта а: */

system("chcp 1251");

cout << "\nС помощью объекта a: ";








Дата добавления: 2015-07-30; просмотров: 581;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.005 сек.