Visualizzazione dei risultati da 1 a 3 su 3

Discussione: [C++] Classi ???

  1. #1

    [C++] Classi ???

    Per che tipo di funzioni uso pubblic ?
    Per che tipo di funzioni uso protected ?
    Per che tipo di funzioni uso private ?

  2. #2
    Utente bannato
    Registrato dal
    Sep 2003
    Messaggi
    1,012
    Public per funzioni che devono essere accessibili direttamente all'utente.
    Private per funzioni "di servizio" a cui solo le altre funzioni della tua classe e le funzioni friend possono accedere.
    Protected (se non usi l'ereditarietà non devi preoccuparti) per funzioni che rimangano sempre private anche con l'ereditarietà multipla.


  3. #3
    Utente di HTML.it L'avatar di Angioletto
    Registrato dal
    Jan 2004
    Messaggi
    1,246
    tutte le variabili che inserisci nel campo "private" sono utilizzabili solo dall'interno della classe in cui stai lavorando,attraverso delle opportune funzioni.


    class Contatore {
    private :
    int i ;
    public :
    Contatore (); // costruttore
    void inc();
    void dec();
    int GetValue();
    };

    ti ho riportato un esempio semplice...i è una variabile privata,ma può essere usata solo all'interno della classe contatore.

    Nell'area pubblica c'è tutto quello che gli altri (utenti o altre classi) possono vedere e usare.Le funzioni che ci sono possono anche alterare il valore della variabile privata,ma ne hanno diritto solo loro..dall'esterno,cioè,non è possibile accedere direttamente ad i..
    In pratica, la variabile i può essere solo incrementata,decrementata o visualizzata:sono questi i "paletti" introdotti dalla programmazione ad oggetti.Non puoi,ad esempio,aggiungere un valore arbitrario ad i o usarla in altre applicazioni..

    Spero che ti sia chiaro il concetto di public e private..passiamo a protected.
    Quest'ultima opzione è una via di mezzo tra le due..ciò che ci scrivi all'interno non può comunque essere usato dagli altri utenti o da classi arbitrarie,ma solo dalle classi figlie...Saprai benissimo che a partire da una classe è possibile costruirne altre attraverso l'ereditarietà:la classe figlia però non ha diritto di usare le variabili o funzioni private del padre(altrimenti non sarebero private,ti pare??),ma possono accedere a tutto quello che è contenuto in protected..
    Come le classi figlie allo stesso modo si comportano le classi friend (amiche)..
    Riassumendo:

    private --> solo dalla classe in questione

    protected --> solo dalle clessi figlie e dalle funzioni amiche

    public --> da tutti

    Spero di essere stato esauriente..

    Ciao!!

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.