Как мне вызвать перегруженный оператор в базовом абстрактном классе? - PullRequest
0 голосов
/ 11 марта 2012

Итак, у меня есть класс Base:

class Base
{
public:
    std::ostream& operator << (std::ostream & out, const Base & base);
}

И я определил, что должен делать оператор:

ostream& operator << (std::ostream & out, const Base & base)
{
    return out << "output";
}

Если у меня есть класс Derived, который расширяетсяBase и я хочу, чтобы Derived делал то же самое, что и Base, когда вызывается его оператор вставки, каков наилучший способ сделать это?И лучше всего я имею в виду лучший способ не использовать код повторно.

1 Ответ

0 голосов
/ 11 марта 2012

Если вы хотите использовать метод базового класса в производном классе, квалифицируйте вызов:

void Derived::func()
{
   //whatever else you want to do first
   return Base::func();
}

Если метод не private, у вас есть доступ к нему, поскольку DerivedBase.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...