Qual è la differenza tra i membri privati ​​e protetti delle classi C ++

Qual è la differenza tra i membri privati ​​e protetti delle classi C ++
C ++ è un linguaggio di programmazione orientato agli oggetti (OOP) che fornisce un meccanismo per incapsulare dati e funzioni in un'unica entità chiamata classe. Una delle caratteristiche essenziali della classe è la capacità di specificare il livello di accesso per i suoi membri. Nella programmazione orientata agli oggetti, Accesso agli specificatori sono utilizzati per controllare la visibilità e l'accessibilità dei campi e dei metodi di una classe. Protetto, pubblico, E privato I livelli di accesso sono i tre tipi di base di livelli di accesso in C++.

In questo articolo, discuteremo della differenza tra i due principali Accesso SpecificatoreS, privato E protetto membri di una classe C ++.

Specificatore di accesso privato

Membri privati sono dichiarati usando la parola chiave 'privato'. IL Specificatore di accesso privato limita l'accesso ai membri della classe solo alla classe stessa. Il codice al di fuori della classe non può accedere o modificare un membro privato. Ciò significa che solo i metodi dichiarati in classe possono accedere e operare sul membri privati, Non possono nemmeno accedere le lezioni derivate membri privati. Un uso comune di membri privati è garantire il corretto funzionamento di una classe. Membri privati vengono utilizzati per incapsulare i dati di classe e fornire un livello di astrazione agli utenti della classe.

#includere
Utilizzo dello spazio dei nomi std;
Classe Player
privato:
Nome stringa;
Int Age;
pubblico:
void getPlayer ()

cout << "Enter name: ";
CIN >> nome;
cout << "Enter age: ";
CIN >> età;

void showplayer ()

cout << "Name: " << name << endl;
cout << "Age: " << age << endl;

;
int main ()

giocatore PL;
pl.getPlayer ();
pl.showplayer ();
restituzione 0;

Nel codice sopra, utilizziamo i metodi dei membri pubblici getPlayer () E ShowPlayer () Per accedere ai due privato membri' nome E età. IL getPlayer () La funzione ottiene l'input dagli utenti e lo visualizza sullo schermo tramite ShowPlayer () funzione.

Produzione

Specificatore di accesso protetto

Membri protetti di una classe è possibile accedere sia dalle classi derivate che dalle funzioni del membro della classe stessa. Membri protetti sono utilizzati per fornire un livello di accesso alle classi derivate senza esporre i dettagli di implementazione al mondo esterno. Membri protetti sono dichiarati usando la parola chiave 'protetto' e il Colon (:) carattere. Membri protetti Consenti di estendere e modificare una classe, senza compromettere la sua integrità. Una classe derivata può usare membri protetti Per perfezionare o personalizzare il comportamento di una classe base.

Ecco un esempio di classe con membri protetti:

#includere
Utilizzo dello spazio dei nomi std;
Classe Player
privato:
Nome stringa;
Int Age;
protetto:
obiettivi int;
pubblico:
void getPlayer ()

nome cout;
Cout Age;

void showplayer ()

cout << "Name: " << name << endl;
cout << "Age: " << age << endl;

;
Class Player1: Public Player
privato:
Paese della stringa;
pubblico:
void set_goals (int g)

obiettivi = g;

void getPlayer1 ()

getPlayer ();
Cout Country;

void showplayer1 ()

cout << "goals: " << goals << endl;
showplayer ();
cout << "Country: " << country << endl;

;
int main ()

Player1 PL;
pl.set_goals (101);
pl.getPlayer1 ();
pl.showplayer1 ();
restituzione 0;

IL giocatore La classe ne comprende due membri privati, nome E età, uno protetto membro, obiettivi, E privato I membri sono utilizzati all'interno del pubblico funzioni del membro, getPlayer () E ShowPlayer (). Ci sono due classi, giocatore E giocatore1, Entrambi sono classi di base. Uno privato membro, Paese, e tre pubblico I metodi dei membri costituiscono il giocatore1 classe. Obiettivi prefissati() viene utilizzato per cambiare il membro protetto obiettivi' valore. getPlayer1 () chiama il getPlayer () funzione membro di giocatore classe pur recuperando inoltre l'input per il paese. Simile a questo, ShowPlayer1 () chiama il ShowPlayer () Funzione del membro e stampa il file obiettivi E Paese valori.

Produzione

Differenza tra membri privati ​​e protetti delle classi C ++

Qui sono elencate alcune delle differenze chiave tra Privato E Protetto Membri delle classi C ++.

1: portata e funzionalità

Quando si considera l'uso degli specificatori di accesso, è fondamentale pensare attentamente al scopo E funzionalità del programma. UN Specificatore di accesso privato Fornisce il massimo livello di sicurezza ed evita l'accesso non intenzionale a variabili e metodi. D'altra parte, a Specificatore di accesso protetto Offre una gamma più ampia di accessibilità e flessibilità, che è essenziale quando si pianifica di ereditare le lezioni derivate da una classe base.

2: livello di accesso

La differenza principale tra privato E membri protetti è il livello di accesso che forniscono. Protetto I membri possono essere accessibili sia dalle classi derivate della classe che dalle funzioni dei membri, ma privato I membri possono essere ottenuti solo dalle funzioni dei membri della classe.

3: incapsulamento della classe

Un'altra differenza cruciale tra privato E protetto I membri sono il loro ruolo nel mantenimento dell'incapsulamento della classe. Isolare i dati e fornire agli utenti della classe un certo livello di astrazione, privato I membri sono impiegati. Protetto I membri sono impiegati per gestire la struttura dell'eredità e fornire accesso ai membri della classe base mediante lezioni derivate.

Pensieri finali

Privato E membri protetti sono i due livelli di accesso essenziali nella classe C ++. IL privato Access Specifier rende i membri della classe inaccessibile a tutti gli utenti esterni e viene utilizzato per mantenere le informazioni privato all'interno della classe. Al contrario, a protetto Access Specifier consente l'accesso ai membri della classe solo per classi derivate, viene utilizzato per fornire funzionalità di classe base e consente la modifica senza modificare il comportamento della classe base. Il livello di accesso dei membri della classe svolge un ruolo cruciale nel mantenere l'incapsulamento della classe e nel fornire un livello di accesso agli utenti della classe.