tgoop.com/seniorcpp/2712
Last Update:
Глубокое копирование
Термин глубокое копирование подразумевает создание нового объекта и копирование всех значений полей исходного объекта в новый объект. Если поле является указателем, то вместо копирования самого указателя создается новый объект, на который указывает исходный указатель, и новый указатель на этот новый объект сохраняется в новом объекте.
Это отличается от поверхностного копирования, при котором копируются только значения полей, включая указатели, но не объекты, на которые они указывают.
В этом примере у нас есть класс Deep
, который содержит указатель data
. В копирующем конструкторе мы создаем новый объект Deep
, копируя значение, на которое указывает data
в исходном объекте, а не сам указатель.
В функции main
мы создаем объект obj1
и затем создаем obj2
, используя копирующий конструктор. Затем мы меняем значение, на которое указывает data
в obj2
, и это не влияет на obj1
, что подтверждает, что было выполнено глубокое копирование.
BY Senior C++ Developer

Share with your friend now:
tgoop.com/seniorcpp/2712