Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.11.2013, 21:46   #1
Кирилл Романов
Пользователь
 
Регистрация: 30.10.2013
Сообщений: 12
Восклицание Сравнение экземпляров класса (C++)

Добрый вечер.

Буду краток, мне нужно сравнить два экземпляра класса.
Понятное дело, нужно перегрузить оператор "==" для полей класса и после этого можно будет сравнивать два экземпляра.

Но вот вопрос: "А что если, полей в классе не 2-3, а 10-100? Не удобно же будет для каждого поля перегружать оператор сравнения. Есть ли более альтернативные, удобные варианты?"

P.S. Весь шум поднят для оптимизации кода. Преподаватель не хочет принимать ...

Последний раз редактировалось Кирилл Романов; 01.11.2013 в 21:56.
Кирилл Романов вне форума Ответить с цитированием
Старый 01.11.2013, 23:29   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Не пойму цели такого сравнения. Предметная область какова?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 01.11.2013, 23:36   #3
Кирилл Романов
Пользователь
 
Регистрация: 30.10.2013
Сообщений: 12
По умолчанию

Дело в том, что я проверяю как работает поток strstream (по заданию). Засовываю туда экземпляр класса, а из него переписываю в новый экземпляр этого же класса. А так как программы пишу при помощи Gtest, то требуется проверить, что изменилось с экземпляром во время нахождения в потоке. Понимаю, что ответ очевиден, но преподавателю нужны доказательства)

Есть ли у Вас какие-либо идею по упрощению алгоритма сравнения двух экземпляров?
Кирилл Романов вне форума Ответить с цитированием
Старый 01.11.2013, 23:53   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
требуется проверить, что изменилось с экземпляром во время нахождения в потоке.
Ну тут ежу понятно что изменилась структура хранения данных - в потоке нет и не может быть обработчиков, только голые данные, сериализированные по неким правилам, придуманным разработчиком.
Цитата:
идею по упрощению алгоритма сравнения двух экземпляров
Зависит от метода сериализации. Например некоторые программисты любили описывать переменные класса в записи или в Сишной терминологии - структуре, таким образом что банальный memcmp() способен сделать сравнение блоков данных в объекте, при условии что размер структуры фиксирован. С другой стороны зависит от реализации класса, он может содержать динамические данные типа векторов и пр. заманчивых штук, которые как-бы в кучу свалены, но не цугом а "как попало". Я не думаю что есть прям таки общая методика сравнения
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
массив экземпляров класса flibustier912 Visual C++ 1 05.05.2012 01:00
Создание экземпляров класса MuradS60 Общие вопросы C/C++ 1 01.04.2012 18:21
Копирование экземпляров класса 3D Hunter Общие вопросы Delphi 14 29.08.2011 12:46
Сортировка массива экземпляров класса по именам Ciberal Общие вопросы C/C++ 1 18.05.2010 23:08
2-мерный динамический массив экземпляров класса. С++ Парсифаль Общие вопросы C/C++ 1 29.12.2009 14:35