Как получить доступ к защищенному методу в базовом классе из производного класса?

Вот пример кода, который меня раздражает:

class Base {
  protected:
    virtual void foo() = 0;
};

class Derived : public Base {
  private:
    Base *b; /* Initialized by constructor, not shown here
                Intended to store a pointer on an instance of any derived class of Base */

  protected:
    virtual void foo() { /* Some implementation */ };
    virtual void foo2() {
      this->b->foo(); /* Compilator sets an error: 'virtual void Base::foo() is protected' */
    }
};

Как получить доступ к защищенной замещаемой функции?

Спасибо за вашу помощь. : o)

9
задан Bernard Rosset 13 January 2011 в 10:44
поделиться