cesso ao ponteiro do método para o método protegid
Este código:
class B {
protected:
void Foo(){}
}
class D : public B {
public:
void Baz() {
Foo();
}
void Bar() {
printf("%x\n", &B::Foo);
}
}
dá este erro:
t.cpp: In member function 'void D::Bar()':
Line 3: error: 'void B::Foo()' is protected
Por que posso chamar um método protegido, mas não usar o endereç Existe uma maneira de marcar algo totalmente acessível a partir de classes derivadas, em vez de apenas acessível a partir de classes derivadas em relação à referida classe derivada?BTW:Isso parece relacionado mas o que estou procurando é uma referência a onde isso é mencionado nas especificações ou algo parecido (e espero que isso leve a como fazer as coisas funcionarem da maneira que eu esperava).