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; }

Rispondi quotando