Como acessar o método protegido na classe base da classe derivada?
Aqui está um exemplo de código que me incomoda:
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' */
}
};
Como você acessa a função cancelada protegida?
Obrigado pela ajuda. : o)