Differenza tra privato e protetto in C ++

Differenza tra privato e protetto in C ++
Il concetto di incapsulamento e nascondiglio dei dati è ampiamente utilizzato nei linguaggi di programmazione orientati agli oggetti come C++. Conoscere questi concetti garantisce la sicurezza e l'integrità dei dati in un programma. In C ++, due specificatori di accesso - privati ​​e protetti - vengono utilizzati per far rispettare questi concetti. Questo articolo copre la differenza tra privato e protetto in C ++ e come influenzano la visibilità e l'accessibilità dei membri della classe.

Sommario

  • Cosa sono gli specificatori di accesso in C++
  • Ciò che è privato in C++
  • Ciò che è protetto in C++
  • Differenza tra privato e protetto in C++
  • Esempi di specificatori di accesso privato e protetto
  • Conclusione

Cosa sono gli specificatori di accesso in C++

In C ++, gli specificatori di accesso sono parole chiave riservate che servono a determinare la visibilità e l'accessibilità dei membri di una classe. Queste parole chiave vengono utilizzate per limitare o consentire l'accesso a diversi membri della classe in un programma.

Gli specificatori di accesso determinano da dove è possibile accedere a un membro della classe. Questi specificatori consentono al codice C ++ di accedere a un membro di classe all'interno o all'esterno di una classe. Consentono inoltre alle lezioni derivate di accedere ai membri della classe principale.

Negli specificatori di accesso C ++ possono essere classificati in tre diversi specificatori:

  • privato
  • protetto
  • pubblico

Questi specificatori controllano la visibilità dei membri della classe, che determina dove e da chi è possibile accedere al programma.

Ciò che è privato in C++

Privato è un specificatore di accesso in C ++ che limita la visibilità e l'accessibilità dei membri della classe solo al classe stessa. I membri che sono definiti come privati ​​non sono accessibili dall'esterno della classe o delle sue classi derivate. I membri privati ​​sono nascosti da altre classi, il che impedisce loro di modificare o accedere ai dati.

Ciò che è protetto in C++

Protetto è un specificatore di accesso in C ++ che limita la visibilità e l'accessibilità dei membri della classe al classe stessa e il suo Classi derivate. I membri definiti come protetti possono essere accessibili dall'interno di una classe o dalle sue classi derivate, ma non dall'esterno della classe. I membri protetti sono anche nascosti da altre classi, il che impedisce loro di modificare o accedere ai dati.

Differenza tra privato e protetto in C++

La differenza principale tra privato e protetto in C ++ è il livello di accessibilità dei membri della classe. L'accesso ai membri privati ​​è limitato all'interno della classe, mentre i membri protetti sono accessibili anche dalle classi derivate.

Un'altra differenza è che i membri privati ​​sono completamente nascosti da altre classi, mentre i membri protetti sono parzialmente nascosti. Ciò significa che le classi derivate possono accedere ai membri protetti, ma non modificarli direttamente. Al contrario, i membri privati ​​non possono essere accessibili o modificati da qualsiasi altra classe.

Esempi di specificatori di accesso privato e protetto

Per dimostrare il concetto di specificatori di accesso nella programmazione orientata agli oggetti, è utile fornire esempi di specificatori di accesso privato e protetto. Diamo un'occhiata più da vicino a come funzionano gli specificatori di accesso privati ​​e protetti e alcuni esempi di come possono essere utilizzati.

Esempio di classe privata in C++

L'impianto di accesso privato limita la visibilità di un membro della classe all'interno della classe stessa. Il codice seguente spiega la classe privata in un programma C ++:

#includere
Utilizzo dello spazio dei nomi std;
persona di classe
// membri privati
privato:
String FullName;
int yearold;
// membri pubblici
pubblico:
void getPersonInfo ()

cout << "Enter full name: ";
getline (cin, fullname);
cout << "Enter age in years: ";
CIN >> anni;

void displayPersonInfo ()

cout << "Name: " << fullName << endl;
cout << "Age: " << yearsOld << endl;

;
// funzione principale
int main ()

// Creazione di oggetti
Persona persona;
persona.getPersonInfo ();
persona.DisplayPersonInfo ();
restituzione 0;

Questo programma C ++ definisce una persona di classe con due variabili di membro privato nome e cognome E Anni, e due funzioni dei membri pubblici getPersonInfo () E DisplayPersonInfo ().

La funzione getPersonInfo () spinge l'utente a inserire il nome completo della persona e l'età. Successivamente, li archivia nelle variabili dei membri privati ​​FullName e Yearsold, rispettivamente.

La funzione DisplayPersonInfo () stampare semplicemente il nome e l'età della persona sulla console.

Nella funzione principale (), creiamo una persona oggetto della classe persona e chiamiamo le sue funzioni getpersoninfo () e displaypersoninfo () per spingere l'utente a inserire le informazioni di una persona e quindi visualizzarli sulla console.

Esempio di classe protetta in C++

L'impepitore di accesso protetto limita la visibilità di un membro della classe all'interno della classe e delle sue sottoclassi. Facciamo un esempio che spiega le classi protette in un programma C ++.

#includere
Utilizzo dello spazio dei nomi std;
// classe base
persona di classe
// membri privati
privato:
String FullName;
Int Age;
// Membro protetto
protetto:
int idnumber;
// membri pubblici
pubblico:
void getPersonInfo ()

cout << "Enter full name: ";
getline (cin, fullname);
cout << "Enter age: ";
CIN >> età;

void displayPersonInfo ()

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

;
// classe derivata
Studente di classe: persona pubblica
// membri privati
privato:
String City;
// membri pubblici
pubblico:
void setId (int id)

// qui IDNumber è il membro protetto della persona
// classe, è accessibile qui
idnumber = id;

void getStudentinfo ()

// Calling getPersonInfo () per leggere i dettagli di base
getPersonInfo ();
// Input City
cout << "Enter city: ";
CIN >> Città;

void displayStudentinfo ()

// Numero ID visualizzato
cout << "ID Number: " << idNumber << endl;
// Chiama DisplayPersonInfo () per stampare i dettagli di base
DisplayPersonInfo ();
// Visualizzazione anche City
cout << "City: " << city << endl;

;
// funzione principale
int main ()

// Creazione di oggetti
Studente studente;
// Numero ID di impostazione
alunno.setid (12345);
// Ottenere tutti i dettagli
alunno.getStudentinfo ();
// Stampa tutti i dettagli
alunno.DisplayStudentinfo ();
restituzione 0;

Qui in questo codice, la classe base è persona con membri privati nome e cognome e età e un membro protetto Idnumber. La classe derivata è studente con un membro privato e funzioni pubbliche setId (), getStudentinfo () e DisplayStudentinfo ().

La funzione setId () imposta il numero ID, che definisce a Membro protetto della classe base. La funzione getStudentinfo () legge i dettagli di base dello studente come il nome completo, l'età e la città in cui vivono.

IL DisplayStudentinfo () La funzione stampa tutti i dettagli dello studente che include il loro numero ID, nome completo, età e città.

Conclusione

Specificatori di accesso privato e protetto nella programmazione orientata agli oggetti assicurano l'incapsulamento e il nascondiglio dei dati. I membri privati ​​sono completamente nascosti da altre classi, mentre i membri protetti sono parzialmente nascosti e possono essere accessibili da classi derivate. La scelta tra l'utilizzo degli specificatori di accesso privato e protetto dipende dalla progettazione e dall'implementazione della classe. Leggi l'articolo per comprendere i dettagli degli specificatori di accesso privato e protetti.