crossplatform.ru

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

> как протестировать оператор присваивания и конструктор копирования класса?
Litkevich Yuriy
  опции профиля:
сообщение 20.4.2010, 15:36
Сообщение #1


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

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

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




Репутация:   94  


Собственно вопрос: как протестировать класс на корректность работы самописаных конструктора копирования и оператора присваивания, и на предмет их существования вообще.

Положим, что в конструкторе класса создаётся динамический объект, а в деструкторе удаляется.

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

При этом могут возникать коварные ситуации. Как я понимаю, связанные с двойным освобождением ресурсов.

Можно ли написать код, который бы осуществлял подобный тест?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
Litkevich Yuriy
  опции профиля:
сообщение 20.4.2010, 19:16
Сообщение #2


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

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

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




Репутация:   94  


Цитата(DIMEDROLL @ 20.4.2010, 23:07) *
что такое КК и ОП?
Конструктор Копирования и Оператор Присваивания

Цитата(Влад @ 20.4.2010, 23:12) *
поскольку abuffer - POD
что означает эта абревиатура?

Цитата(DIMEDROLL @ 20.4.2010, 23:07) *
Что-то это что?
чёткий эффект это какой?
Что-то - некоректный КК и/или ОП
чёткий, например сообщение: "Конструктор копирования работает не корректно"
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
DIMEDROLL
  опции профиля:
сообщение 20.4.2010, 19:34
Сообщение #3


Участник
**

Группа: Участник
Сообщений: 165
Регистрация: 28.9.2008
Из: Киев
Пользователь №: 304

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




Репутация:   0  


Цитата
Конструктор Копирования и Оператор Присваивания
Что-то - некоректный КК и/или ОП
чёткий, например сообщение: "Конструктор копирования работает не корректно"

В таком случае мой код(функция и оператор==) соотвествует данном описанию, если что не так - будет ассерт с сообщением.
POD это int, double, short .... тоесть встроенные типы Си
P.S гуглится за меньше минуту ;)
Добавлено: был неправ, POD - структура данных не имеющая никаких методов, только члены-переменные
википедия англ.

Сообщение отредактировал DIMEDROLL - 20.4.2010, 19:48
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме
- Litkevich Yuriy   как протестировать оператор присваивания и конструктор копирования класса?   20.4.2010, 15:36
- - Andrewshkovskii   http://www.devexp.ru/2010/03/o-kopirovanii-obektov...   20.4.2010, 15:52
- - Влад   Цитата(Litkevich Yuriy @ 20.4.2010, 15:36...   20.4.2010, 17:16
- - Litkevich Yuriy   я пока примитивный тест сделал (мой класс - просте...   20.4.2010, 17:41
|- - DIMEDROLL   Цитата(Litkevich Yuriy @ 20.4.2010, 17:41...   20.4.2010, 18:30
- - Влад   Гмм.... А можно взглянуть на код этого YBuffer1?   20.4.2010, 18:06
- - Litkevich Yuriy   Цитата(Влад @ 20.4.2010, 22:06) Гмм.... А...   20.4.2010, 18:52
|- - DIMEDROLL   ЦитатаЦитата(DIMEDROLL @ 20.4.2010, 22:30...   20.4.2010, 18:59
- - Litkevich Yuriy   Цитата(DIMEDROLL @ 20.4.2010, 22:59) не п...   20.4.2010, 19:03
|- - DIMEDROLL   Цитата(Litkevich Yuriy @ 20.4.2010, 19:03...   20.4.2010, 19:07
- - Влад   Я немного подправил код.... Правда, не компилирова...   20.4.2010, 19:12
- - Litkevich Yuriy   Цитата(DIMEDROLL @ 20.4.2010, 23:07) что ...   20.4.2010, 19:16
|- - DIMEDROLL   ЦитатаКонструктор Копирования и Оператор Присваива...   20.4.2010, 19:34
- - Влад   POD - Plain Old Data.   20.4.2010, 19:19
- - Litkevich Yuriy   Цитата(Влад @ 20.4.2010, 23:12) // эта ош...   20.4.2010, 19:23
- - Влад   Юрий, просто Стандарт языка (п. 5.3.5 положение (c...   20.4.2010, 21:36
- - Litkevich Yuriy   Цитата(Влад @ 20.4.2010, 23:12) см. Сатте...   21.4.2010, 12:57
- - AD   Цитата(Litkevich Yuriy @ 21.4.2010, 13:57...   21.4.2010, 17:48


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


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




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