Re: В чем секрет конструктора копирования.
Добавлено: 04 фев 2010, 01:45
Может не так выразился. Но вобщем я это представлял так (поправьте, если не прав):А где это вы такое вычитали что при передачи параметра по значению указатели будут указывать на одну ячейку памяти? это будут разные адреса, т.к. это разные объекты хоть и одного типа.
int a = 5;
- func(int x);
func(a); - создаст локальную копию переменной.
- func(int& x);
func(a); - передача по ссылке; передаем адрес переменной, работаем напрямую, а не с копией.
int *p1, *p2, b(7);
p1 = &a;
p2 = &b;
*p1 = *p2; - присваиваем содержимое указателя на переменную b указателю на переменную a
p1 = p2; - присваиваем указателю p1 значение указателя p2.
Ряд разных книг взял, разные статьи просмотрел и пришел к выводу, что работать (если не учитывать того, что компилятор просто не узнает конструктор копирования) будет по принципу "p1 = p2". Или деструктор будет воспринимать объекты в таком ключе.
Вобщем пришел к тому, что стандарт есть стандарт и от него уходить в сторону для понимания сути вещей (даже на время) лучше не стоит, будет хуже.
P.S> *зевая* утром надо будет почитать, что тут намалевал.... да и вообще "утро вечера мудренее"(с)народная мудрость.