Per che tipo di funzioni uso pubblic ?
Per che tipo di funzioni uso protected ?
Per che tipo di funzioni uso private ?
Per che tipo di funzioni uso pubblic ?
Per che tipo di funzioni uso protected ?
Per che tipo di funzioni uso private ?
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.
![]()
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!!