Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    7

    Delucidazione Classi derivate

    Salve ragazzi volevo una delucidazione sulle classi derivate: allora io ho un generica classe base con gli attributi private ed i metodi pubblici, ora quando la vado a derivare se imposto lo specificatore di accesso alla classe base in "protected" in che modo eredita dalla classe base?

    In pratica non ho bene afferrato il concetto di quando imposto nella classe derivata lo specificatore di accesso alla classe base in "protected". Grazie mille.

    Esempio:
    class Base{
    private:
    .....
    .....
    public:
    ....
    ....
    };

    class Derivata: protected Base{
    private:
    .....
    .....
    public:
    ....
    ....
    };
    Orgoglioso di far parte del forum !

  2. #2
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381
    In tal caso la sezione public di Base diventa protected in Derivata.
    Se la derivazione fosse private, la sezione public di base diventerebbe private in Derivata.

    Notare che i campi private di Base rimangono tali anche se la derivazione fosse public

    Come regola generale vale il concetto di: "accesso più ristretto possibile".
    This code and information is provided "as is" without warranty of any kind, either expressed
    or implied, including but not limited to the implied warranties of merchantability and/or
    fitness for a particular purpose.

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    7
    shodan grazie della risposta, quindi facendo nel main:
    esempio:

    Derivata p;
    p."nome_metodo_classe_base()";

    il compilatore mi dovrebbe dare errore giusto? Perchè dato che è "protected", la classe derivata non può utilizzarlo, ma può utilizzarlo solo la classe base??

    cioè potrei fare solo:

    Base b;
    b."nome_metodo_classe_base()";

    cosi non dovrebbe dare errore. Giusto?

    Grazie mille per una vostra eventuale delucidazione.
    Orgoglioso di far parte del forum !

  4. #4
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381
    Esatto. Derivare in modo protected non è molto frequente, ma alle volte si fa. Ad esempio quando di una classe Base, che può essere utilizzata a se stante, si vogliono esporre solo alcune funzioni richiamate attraverso la classe Derivata, che si comporta, di fatto, come un fattorino per le consegne.
    This code and information is provided "as is" without warranty of any kind, either expressed
    or implied, including but not limited to the implied warranties of merchantability and/or
    fitness for a particular purpose.

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    7
    Ti ringrazio, anche io pensavo la stessa cosa, a cosa servirebbe in tal senso lo specificatore d'accesso "protected" nelle classi derivate...in ogni caso ho risolto il mio dubbio.

    Grazie.
    Orgoglioso di far parte del forum !

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.