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

Qual E La Differenza Tra 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 una singola entità chiamata classe. Una delle caratteristiche essenziali della classe è la possibilità di specificare il livello di accesso per i suoi membri. Nella programmazione orientata agli oggetti, specificatori di accesso vengono 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 base di livelli di accesso in C++.

In questo articolo, discuteremo la differenza tra i due main identificatore di accesso S, privato E protetto membri di una classe C++.

Identificatore di accesso privato

Membri privati sono dichiarati usando la parola chiave ' privato '. IL identificatore 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 nella classe possono accedere e operare su membri privati , nemmeno le classi derivate possono accedere membri privati . Un uso comune di membri privati è quello di garantire il corretto funzionamento di una classe. Membri privati sono usati per incapsulare i dati della classe e fornire un livello di astrazione agli utenti della classe.







#include
utilizzando spazio dei nomi standard ;

classe giocatore {

privato :
nome stringa ;
int età ;

pubblico :
vuoto getPlayer ( )
{
cout << 'Inserisci il nome: ' ;
mangiare >> nome ;
cout << 'Inserisci l'età: ' ;
mangiare >> età ;
}
vuoto showPlayer ( )
{
cout << 'Nome: ' << nome << finel ;
cout << 'Età: ' << età << finel ;
}
} ;

int principale ( )
{
giocatore pl ;
pl. getPlayer ( ) ;
pl. showPlayer ( ) ;

ritorno 0 ;
}

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



Produzione







Identificatore di accesso protetto

Membri protetti di una classe sono accessibili sia dalle classi derivate che dalle funzioni membro della classe stessa. Membri protetti vengono 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 due punti (:) carattere. Membri protetti consentono di estendere e modificare una classe, senza comprometterne l'integrità. Una classe derivata può utilizzare membri protetti per perfezionare o personalizzare il comportamento di una classe base.

Ecco un esempio di una classe con membri protetti :



#include
utilizzando lo spazio dei nomi std;

giocatore di classe {
privato:
nome della stringa;
int età;

protetto:
obiettivi int;

pubblico:
void getPlayer ( )
{
cout <> nome;
cout <> età;
}
void showPlayer ( )
{
cout << 'Nome: ' << nome << finel;
cout << 'Età: ' << età << finel;
}
} ;

class player1 : giocatore pubblico {

privato:
paese delle stringhe;

pubblico:
void set_goals ( int g )
{
obiettivi = g;
}
void getPlayer1 ( )
{
getPlayer ( ) ;
cout <> Paese;
}
void showPlayer1 ( )
{
cout << 'obiettivi: ' << obiettivi << finel;
showPlayer ( ) ;
cout << 'Paese: ' << Paese << finel;
}
} ;

int principale ( )
{
giocatore1pl;
pl.set_goals ( 101 ) ;
pl.getPlayer1 ( ) ;
pl.showPlayer1 ( ) ;

ritorno 0 ;
}

IL giocatore classe comprende due membri privati , nome E età , uno protetto membro, obiettivi , E privato i membri sono utilizzati all'interno del pubblico funzioni dei membri, getPlayer() E mostragiocatore() . Ci sono due classi, giocatore E giocatore1 , entrambe classi di base. Uno privato membro, Paese , e tre pubblico i metodi membro costituiscono il giocatore1 classe. Obiettivi prefissati() viene utilizzato per modificare il membro protetto obiettivi' valore. ottieniGiocatore1() chiama il getPlayer() funzione membro del giocatore class recuperando inoltre l'input per il paese. Simile a questo, mostraGiocatore1() chiama il mostragiocatore() funzione membro e stampa il file obiettivi E Paese valori.

Produzione

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

Qui sono elencate alcune delle principali differenze tra Privato E Protetto membri delle classi C++.

1: Ambito e funzionalità

Quando si considera l'uso degli specificatori di accesso, è fondamentale riflettere attentamente sul scopo E funzionalità del programma. UN identificatore di accesso privato fornisce il massimo livello di sicurezza ed evita l'accesso involontario a variabili e metodi. D'altra parte, l'a identificatore di accesso protetto offre una gamma più ampia di accessibilità e flessibilità, essenziale quando si pianifica di ereditare classi derivate da una classe base.

2: Livello di accesso

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

3: Incapsulamento della classe

Un'altra differenza cruciale tra privato E protetto membri è il loro ruolo nel mantenere l'incapsulamento della classe. Per isolare i dati e fornire agli utenti della classe un certo livello di astrazione, privato i membri sono occupati. Protetto i membri sono impiegati per gestire la struttura di ereditarietà e fornire l'accesso ai membri della classe base da parte delle classi derivate.

Pensieri finali

Privato E membri protetti sono i due livelli di accesso essenziali nella classe C++. IL privato Lo specificatore di accesso rende i membri della classe inaccessibili a tutti gli utenti esterni e viene utilizzato per conservare le informazioni privato all'interno della classe. Al contrario, A protetto Lo specificatore di accesso consente l'accesso ai membri della classe solo da parte delle classi derivate, viene utilizzato per fornire funzionalità della 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.