ciao, sto cercando di capire il corretto uso dei modificatori di accesso.
Il mio dubbio cade su protected. So che i metodi sarebbero visibili dagli oggetti delle sottoclassi e dall'oggetto stesso.
Inizialmente avevo messo protected entrambi i metodi della classe C, perchè vedo che sono richiamati dalla sottoclasse D. Ma così non compila.
Ho messo protected solo metodo1() e compila.
Qualcuno potrebbe spiegarmi perfavore perchè se nella classe C metto anche metodo() protected non compila ?
Nel main viene creato un oggetto g di tipo D che richiama metodo() della superclasse C, non riesco quindi a spiegarmi perchè non accetta il protected.
Grazie
codice:
class C
{
public:
void metodo(){};
protected:
void metodo1(){};
};
class D: public C
{
void metodo2();
};
void D::metodo2(){metodo1();}
int main(int argc, char *argv[])
{
D g;
g.metodo();
return 0;
}