Просто быстрый вопрос, если у меня есть шаблон класса:
template <typename T>
class foo {
public:
bool operator!=(foo& other) const {
//...
}
}
А потом я наследую указанный класс:
template <typename T>
class bar : public foo<T> {
//...
}
Наследование перегрузки оператора наследуется?И если нет, то как бы я реализовал его так, чтобы он это делал ... потому что в настоящее время в моем тестовом классе это вызывает ошибку:
for (bar<int> i(baz); i != bar<int>(); i++) {}
Оператор ++ реализован в классе bar, так что работает, но оператор! =, очевидно, не наследуется.Сообщение об ошибке:
error: no match for 'operator!=' in 'i != bar<int>(0u, 0u)'
note: candidate is: bool foo<T>::operator!=(foo<T>&) const [with T = int]
Это в значительной степени подводит итог моей проблемы, поэтому мне просто интересно, как бы я унаследовал перегрузку оператора.