Сначала немного вернемся, я создал двусвязный список, используя шаблоны. У меня есть класс «account», в котором я перегружен оператор «==» для сравнения идентификаторов аккаунта. Я создал связанный список для хранения учетных записей.
Когда я добавляю новую учетную запись в список, она вызывает «содержит?» метод, который вызывает оператор ==. Это где ошибка вызывается и g ++ говорит мне
sll.h: В функции-члене ‘bool list :: содержит (T) [с T = account]’:
customer.h: 25: 35: создается отсюда
sll.h: 261: 3: ошибка: нет совпадения для оператора «==» в «temp-> node :: data == item»
account.h: 36: 6: примечание: кандидат: bool account :: operator == (account &)
Я занимаюсь расследованием уже несколько часов и не могу до конца разобраться. Я подозреваю, что это может быть связано с тем фактом, что я использую шаблоны. Я создал тестовую программу, чтобы проверить, правильно ли я перегружаю оператор, и она работает, как и ожидалось.
Также обратите внимание: есть класс клиента, в котором содержится список учетных записей, и этот метод называется «добавить». К сожалению, я не могу опубликовать более двух гиперссылок, так что поверьте мне на слово, что этот класс создан правильно. = Р
Поскольку код несколько длинный, я использовал pastie:
Класс связанного списка
Класс учетной записи