У меня была та же ошибка, которая также была вызвана const
, но немного по-другому.
У меня есть две виртуальные функции (перегрузки), одна была const
, а другая нет.Это было причиной проблемы.Оказывается, если вы хотите перегрузить функцию, они оба должны совпадать, если они const
или нет.
virtual void value() const = 0;
virtual void value(MyStruct & struct) = 0;
Приведенный выше код вызовет эту ошибку.Исправление заключается в том, чтобы изменить объявление 2-го на:
virtual void value(MyStruct & struct) const = 0;