У меня следующий вопрос:
Предположим, базовый класс A с методом:
A& operator+(A& a) {...}
У меня также есть производный класс B, который перегружает (или, по крайней мере, должен) этот метод:
A& operator+(B& b) {...}
Проблема в том, что если я хочу вызвать что-то вроде: b + a (где b имеет тип B, а a - тип A), я получаю ошибку компиляции. (ошибка C2679: двоичный «+»: не найден оператор, который принимает правый операнд типа «A» (или нет приемлемого преобразования)).
Разве это не должно вызывать метод базового класса? (похоже, что он переопределяет метод..) Если нет, то почему? Есть ли способ исправить это (не говорите мне перегружать метод в B с помощью A&)
Извините, я не привожу примеры в форматированном тексте, но я не знаю, как его форматировать.
Заранее спасибо!
PS Я использую бета-версию Visual Studio 2010.