crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> С++, оператор присваивания, каково должно быть поведение
Litkevich Yuriy
  опции профиля:
сообщение 16.4.2010, 11:45
Сообщение #1


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Тут пришлось впервые делать полноценный самописанный класс. По сути это буфер со специфической функциональностью.
И понадобилось реализовать такие вещи как Конструктор копирования и оператор присваивания.

Первый я сделал, а вот на операторе присваивания я застрял.
YBuffer1 &operator=(const YBuffer1 &other);

Как он должен себя вести? У меня в классе создаётся динамический объект. И текущий экземпляр (this), должен просто пользоваться чужим (other) динамическим объектом или нет.

Вроде название оператора предполагает однозначную трактовку поведения, но я повис.

Помогите понять.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
BRE
  опции профиля:
сообщение 16.4.2010, 11:57
Сообщение #2


Профессионал
*****

Группа: Участник
Сообщений: 1112
Регистрация: 6.3.2009
Из: Ростов-на-Дону
Пользователь №: 591

Спасибо сказали: 264 раз(а)




Репутация:   44  


Цитата(Litkevich Yuriy @ 16.4.2010, 12:45) *
Вроде название оператора предполагает однозначную трактовку поведения, но я повис.

Он должен сделать самостоятельную копию.

Сообщение отредактировал BRE - 16.4.2010, 11:57
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 16.4.2010, 12:02
Сообщение #3


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


другими словами, его поведение должно повторять Конструктор копирования
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
BRE
  опции профиля:
сообщение 16.4.2010, 12:04
Сообщение #4


Профессионал
*****

Группа: Участник
Сообщений: 1112
Регистрация: 6.3.2009
Из: Ростов-на-Дону
Пользователь №: 591

Спасибо сказали: 264 раз(а)




Репутация:   44  


Цитата(Litkevich Yuriy @ 16.4.2010, 13:02) *
другими словами, его поведение должно повторять Конструктор копирования

Да.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Влад
  опции профиля:
сообщение 16.4.2010, 18:53
Сообщение #5


Участник
**

Группа: Участник
Сообщений: 146
Регистрация: 20.3.2009
Из: Санкт-Петербург
Пользователь №: 627

Спасибо сказали: 46 раз(а)




Репутация:   8  


Юрий, еще порекомендовал бы Джеффа Элджера "C++ библиотека программиста" и Херба Саттера "Решение сложных задач на C++" и "Новые сложные задачи на C++" - там конструирование и копирование объектов описано довольно подробно, в том числе с точки зрения безопасности и корректности состояния программы в целом.
(Книги есть в электронном виде, гуглятся.)

Сообщение отредактировал Влад - 16.4.2010, 18:55
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 29.11.2024, 2:11