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!!