Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2013
    Messaggi
    11

    [C++] Modificatori di accesso: Protected

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

  2. #2
    La parola chiave protected sta ad indicare che i membri di tale tipo possono essere ereditati dalle sottoclassi (proprio come public), ma non sono "visibili" dall'esterno della classe stessa (proprio come private). Si può dire quindi che la parola chiave protected è una via di mezzo tra public e private.

    Inoltre se decidi di implementare la funzione direttamente nella dichiarazione della classe non importa mettere il ; alla fine.

    codice:
     
    void metodo() {} ; // non importa il ;
    void metodo1();    // necessita il ; (prototipo)

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.