#include <iostream>
class A {
protected:
void foo()
{}
};
class B : public A {
public:
void bar()
{
std::cout << (&A::foo) << std::endl;
}
};
int main()
{
B b;
b.bar();
}
Qui sto cercando di ottenere l'indirizzo della funzione membro protetta della classe base. Sto ottenendo questo errore.L'indirizzo della funzione membro protetto nella classe derivata non è accessibile
main.cpp: In member function ‘void B::bar()’:
main.cpp:5: error: ‘void A::foo()’ is protected
main.cpp:13: error: within this context
make: *** [all] Error 1
Modifica foo a lavori pubblici. Anche la stampa di &B::foo
funziona. Puoi spiegare perché non possiamo ottenere l'indirizzo della funzione membro protetto della classe base?
Buona domanda.Sembra una correzione futura! – iammilind