Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
28 / 5 / 0
Регистрация: 20.02.2016
Сообщений: 968
1

Как разделить перегрузку присваивания и конструктора копирования?

21.10.2018, 20:38. Просмотров 888. Ответов 3
Метки нет (Все метки)

Знакомлюсь с перегрузками присваивания и конструктора копирования. Есть класс
C++
1
2
3
4
class Data
{
int d;
}
Перегрузка присваивания
C++
1
2
3
4
5
Data operator=(Data  Dt)
{
d=DT.d;
return Dt;
}
конструктор копирования
C++
1
2
3
4
void operator=(Data  &Dt)
{
d=DT.d;
}
Проблема у меня в том, что компилятор выдаёт ошибку про несколько операторов =.
Как этого избежать? Можно различить эти операции перегрузки?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.10.2018, 20:38
Ответы с готовыми решениями:

Явное определение конструктора копирования и оператора присваивания
Объясните, пожалуйста, нужно ли явно определять конструктор копирования (**) и оператор...

Посмотрите описание конструктора копирования и оператора присваивания с ними все в порядке? После функции add теряются данные
class Person{ char *name; int age; char *floor; char *phone; public: Person(){...

В чём отличия конструктора копирования и конструктора перемещения? Где и как их нужно использовать?
Помогите разобраться в копирующем и перемещающем конструкторах. В чём их существенное отличие и...

Не понял в С++ зачем нужны ссылки в функциях и Перегрузку конструктора!
Мож кто разьяснит в этих темам что и для чего они нужны!обяз с примерами!

3
Модератор
Эксперт С++
9578 / 8213 / 5014
Регистрация: 18.12.2011
Сообщений: 21,950
21.10.2018, 20:47 2
Лучший ответ Сообщение было отмечено Fatmarmelad как решение

Решение

Цитата Сообщение от Fatmarmelad Посмотреть сообщение
конструктор копирования
C++
1
2
3
4
Data(const Data  &Dt)
{
   d=DT.d;
}
1
28 / 5 / 0
Регистрация: 20.02.2016
Сообщений: 968
21.10.2018, 22:25  [ТС] 3
zss, посоветуйте, пожалуйста, чем отличаются две операции ниже. Когда использовать код с возвратом, а когда - без?

C++
1
2
3
4
 void operator=(Data  &Dt)
{
d=DT.d;
}
C++
1
2
3
4
5
 Data  operator=(Data  &Dt)
{
d=DT.d;
return d;
}
0
Модератор
Эксперт С++
9578 / 8213 / 5014
Регистрация: 18.12.2011
Сообщений: 21,950
22.10.2018, 08:25 4
Вызов в 1 случае
C++
1
2
3
4
5
6
7
Data x,y,z;
x=y;
//или
x.operator=(y);
//так нельзя:
// x=y=z; 
//x.operator=(y.operator=(z));
Вызов во 2 случае
C++
1
2
3
Data x,y,z;
x=y=z;
x.operator=(y.operator=(z));
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.10.2018, 08:25

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

Выполнить перегрузку конструктора и операции вывода результатов на экран
Здравствуйте, помогите пожалуйста с заданием! Программу сделал, а как выполнить перегрузку не...

Конструктор копирования, присваивания
Пусть есть класс class some{ private : int a ; }; Перегрузить оператор "=" можно так ...

Конструктор копирования и оператор присваивания
Не понимаю, когда используется один, а когда другой. Написал простой пример с комплексными числами...

Конструктор копирования и оператор присваивания
Есть класс (синтетический, создан для примера) class Object { private: int a; float...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.