СС
Сергей Спиридонов

Подскажите по С++. конструктор копирования или оператор равно ?

Есть у меня 3 объекта класса Class, в каждом есть динамический массив.

Перегрузку сложения выполнил, а вот чтобы присвоить результат объекту o3, что нужно сделать? Написать перегрузку оператора = или сделать конструктор копирования ? (кстати при перегрузке сложения возвращаю объект) .

Class o1, o2, o3;

o3 = o1 + o2; //непонятно что здесь будит происходить копирование или присваивание

Св
Светлана

Здесь сначала выполниться сложение объектов o1 и o2, в результате которого будет создан временный объект, который присваивается объекту o3
Копирование, это когда вот так.. .

Class o4 = o3;

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

КС
Ксюнечка Серегина

Конструктор или оператор, определяется по левому объекту (от знака равно) .
Объект слева от присваивания уже создан строчкой выше, поэтому у Вас будет оператор, а не конструктор

А по правому определяется, присваивания или движения. Если движения никакого не бывает (а его и не было до C++11), то вместо него используется копирование. Но если будете движение поддерживать тоже, то дернется именно оператор движения, т. к. справа у Вас временный объект.

Похожие вопросы
Подскажите конструктор или движек игр с редакторами
Копирование и переименованние
Проблема с копированием.
Копирования файла !!!
Как сделать, чтобы в условном операторе и х, и y были равны нулю?
подскажите конструктор игр
Разработать класс String для работы со строками. Класс должен содержать основной конструктор и конструктор копирования
Подскажите конструктор интернет-магазина
копирование через cmd ?
Приложение или конструктор?