Я хочу вызвать определенный оператор определенного базового класса некоторого класса. Для простых функций это просто: я просто пишу SpecificBaseClass :: function (args);
. Как мне реализовать то же самое для операторов без обмана приведения типов?
Изолированная проблема:
class A
{
public:
A operator+( const A &other ) const {...}
};
class B : public A
{
public:
B operator+( const B & other ) const {...}
};
...
B a, b;
B c = A::operator+( a, b ); //how this should be implemented? I get an error
...
Я получаю следующую ошибку от GCC4.5.1 :
error: no matching function for call to ‘A::operator+(B&, B&)’
note: candidate is: A A::operator+(const A&) const
Спасибо !
ИЗМЕНИТЬ
Я улучшил пример, чтобы лучше проиллюстрировать проблему.