Как мне получить истинное значение при использовании object_comparison в пустом связанном списке в моем условии публикации?

У меня есть задание, которое требует, чтобы я создал пустой связанный список key: LINKED_LIST [KEY], другой связанный список data_items_1: LINKED_LIST [DATA1] и хеш-таблицу data_items_2: HASH_TABLE [DATA2, KEY] в конструкторе. Пост-условие, которое поставил мой профессор, было

object_equality_for_keys: keys.object_comparison
object_equality_for_data_items_1: data_items_1.object_comparison
object_equality_for_data_items_2: data_items_2.object_comparison

Когда я запускаю программу, я получаю нарушение контракта. В отладчике он всегда указывает на эту строку кода, и я не уверен, почему. Какова цель этого пост-условия и как мне не нарушить этот договор? Сообщение об ошибке


person Ed Shirinian    schedule 10.10.2019    source источник


Ответы (1)


Функция compare_objects класса CONTAINER указывает, использует ли этот контейнер = (сравнение ссылок) или ~ (сравнение значения/объекта, которое вызывает is_equal внутри) при сравнении элементов. Вы можете вызвать compare_objects или compare_references, чтобы настроить отдельные контейнеры и убедиться, что они работают так, как вам нужно.

person obnosim    schedule 11.10.2019
comment
Значит, где-то еще в моем классе я сравниваю ссылки с этими структурами данных? - person Ed Shirinian; 11.10.2019