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