Как скопировать объект по указателю в с++?

Пользователь

от amber_moore , в категории: C/C++ , год назад

Как скопировать объект по указателю в с++?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от charles.orn , 10 месяцев назад

@amber_moore 

Чтобы скопировать объект по указателю в C++, вы можете использовать оператор копирования "копировать-или-переместить". Он перенаправляет существующий объект на новый объект, используя указатель на исходный объект. Вот пример:

1
2
3
4
5
6
7
class MyClass {
public:
    MyClass(const MyClass& other) = default;
};

MyClass* obj1 = new MyClass;
MyClass* obj2 = new MyClass(*obj1); // копирование obj1 в obj2


Здесь мы создаем два объекта типа MyClass, obj1 и obj2, и используем ключевое слово "new" для выделения памяти под них. Затем мы копируем obj1, передав его по ссылке в конструктор MyClass(*obj1), и присваиваем результат obj2.


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