Campi private ereditarietà

di il
2 risposte

Campi private ereditarietà

Ciao a tutti, probabilmente è una domanda stupida ma ho un dubbio sull'ereditarietà dei campi private in una classe derivata: sappiamo che una classe derivata non eredita i campi privati di una classe base ma, nel seguente esempio di codice:

#include <iostream>
using namespace std;

class Persona{
    int a;
    public:
        void stampa(){
            cout<<a<<endl;
        }
};

class Studente: public Persona{
    int b;
};

int main(){
    Studente s = Studente();
    s.stampa();
    return 0;
}
come fa l'oggetto s di tipo Studente a stampare la variabile a dato che nella classe base è un membro privato e, quindi, s non dovrebbe avere questo campo?

2 Risposte

  • Re: Campi private ereditarietà

    stranger1902 ha scritto:


    sappiamo che una classe derivata non eredita i campi privati di una classe base
    Sbagli:si tratta di "visibilità" non di "esistenza".
    È meglio se rileggi l'introduzione agli oggetti e all'ereditarietà.
  • Re: Campi private ereditarietà

    nicolap ha scritto:


    stranger1902 ha scritto:


    sappiamo che una classe derivata non eredita i campi privati di una classe base
    Sbagli:si tratta di "visibilità" non di "esistenza".
    È meglio se rileggi l'introduzione agli oggetti e all'ereditarietà.
    Grazie mille mi sei stato di grande aiuto il nostro prof non aveva messo in evidenza questa differenza aveva semplicemente parlato di non possedere i campi privati senza specificare il fatto che si trattasse di visibilità e non di esistenza
Devi accedere o registrarti per scrivere nel forum
2 risposte