Приветствуем всех,
Можно ли создать надежный оператор сравнения (==) в С++?
Проблема, с которой я столкнулся, заключалась в том, что у нас есть класс с несколькими членами. У нас есть оператор сравнения для проверки того, имеет ли экземпляр-1 объекта те же значения, что и экземпляр-2.
то есть. мы можем сделать
class blarg {
.....
};
.....
blarg b1(..initializers...);
blarg b2 = b1;
if (b1 == b2) {
... then do something ....
}
Однако у меня был сотрудник, который добавил в класс нового члена, но не смог обновить оператор сравнения. Это приводит к проблемам, которые нам понадобилось время, чтобы понять.
Есть ли практика кодирования, я имею в виду другой, чем обзор кода (который не удался для нас), или метод кодирования, дизайн, шаблон, магия beans, что бы это не помогло избежать подобных ситуаций
Моя первая реакция заключалась в использовании команды memcmp
. Однако, прочитав запись для Сравнение структур в C vs С++, я вижу, что это может быть проблематично из-за того, что классы С++ имеют не только данные элемента внутри.
Как другие справляются с этим?
Заранее благодарим вас за помощь.