Объект a1

 
 


Данное (*p)

Объект

P
a2

При освобождении памяти в a1 ( или в a2) стирается наше единственное данное, т.е. и второй объект разрушается.

Правильным копированием при наличии в объекте динамического данного будет выделение для создаваемого при копировании объекта нового участка памяти.

Объект a1

       
 
P
 
 


Данное (*p)

 
P
Объект a2

Данное (*p)

В этом случае объекты a1 и a2 будут указывать на разные поля. Уничтожение одного из них вызовом деструктора, никак не отразится на существовании другого. Именно это и выполняется в нашем конструкторе копирования.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: