Różnica między prywatnym a chronionym w C ++

Różnica między prywatnym a chronionym w C ++
Pojęcie enkapsulacji i ukrywania danych jest szeroko stosowane w obiektowych językach programowania, takich jak C++. Znajomość tych pojęć zapewnia bezpieczeństwo i integralność danych w programie. W C ++ dwa specyfikatory dostępu - prywatne i chronione - są używane do egzekwowania tych koncepcji. W tym artykule obejmuje różnicę między prywatnym a chronionym w C ++ oraz ich wpływu na widoczność i dostępność członków klasy.

Spis treści

  • Jakie są specyfikatory dostępu w C++
  • Co jest prywatne w C++
  • Co jest chronione w c++
  • Różnica między prywatnym a chronionym w c++
  • Przykłady prywatnych i chronionych specyfikatorów dostępu
  • Wniosek

Jakie są specyfikatory dostępu w C++

W C ++ specyfikatory dostępu są zastrzeżonymi słowami kluczowymi, które służą określaniu widoczności i dostępności członków klasy. Te słowa kluczowe służą do ograniczenia lub umożliwienia dostępu do różnych członków klasy w programie.

Specyfikatory dostępu określają, skąd można uzyskać dostęp do członka klasy. Te specyfikatory umożliwiają kodowi C ++ na dostęp do członka klasy z klasy lub poza. Pozwalają także na zajęcia pochodne na dostęp do członków klasy głównej.

W C ++ specyfikatory dostępu można podzielić na trzy różne specyfikatory:

  • prywatny
  • chroniony
  • publiczny

Te specyfikatory kontrolują widoczność członków klasy, która określa, gdzie i przez kogo można uzyskać do nich dostęp w programie.

Co jest prywatne w C++

Prywatny to specyfikator dostępu w C ++, który ogranicza widoczność i dostępność członków klasy tylko do sama klasa. Członkowie, którzy są zdefiniowani jako prywatni, nie są dostępne spoza klasy lub jej pochodnych klas. Prywatni członkowie są ukryci przed innymi klasami, co uniemożliwia im modyfikację lub dostęp do danych.

Co jest chronione w c++

Chroniony to specyfikator dostępu w C ++, który ogranicza widoczność i dostępność członków klasy do sama klasa i jego zajęcia pochodne. Członkowie zdefiniowani jako chronione można uzyskać z klasy lub jej pochodnych klas, ale nie z zewnątrz klasy. Chronione członkowie są również ukryte przed innymi klasami, co uniemożliwia im modyfikację lub dostęp do danych.

Różnica między prywatnym a chronionym w c++

Główną różnicą między prywatnym a chronionym w C ++ jest poziom dostępności członków klasy. Dostęp do członków prywatnych jest ograniczony w klasie, podczas gdy członkowie chronione są również dostępne z zajęć pochodnych.

Inna różnica polega na tym, że członkowie prywatni są całkowicie ukryci przed innymi klasami, podczas gdy członkowie chronicy są częściowo ukryci. Oznacza to, że zajęcia pochodne mogą uzyskać dostęp do chronionych członków, ale nie modyfikować ich bezpośrednio. W przeciwieństwie do prywatnych członków nie można uzyskać ani modyfikować przez żadną inną klasę.

Przykłady prywatnych i chronionych specyfikatorów dostępu

Aby zademonstrować koncepcję specyfikatorów dostępu w programowaniu obiektowym, pomocne jest podanie przykładów prywatnych i chronionych specyfikatorów dostępu. Przyjrzyjmy się, jak działają prywatne i chronione specyfikatory dostępu oraz kilka przykładów tego, jak można ich użyć.

Przykład klas prywatny w C++

Prywatny specyfikator dostępu ogranicza widoczność członka klasy w samej klasie. Poniższy kod wyjaśnia klasę prywatną w programie C ++:

#włączać
za pomocą przestrzeni nazw Std;
Osoba klasowa
// Prywatni członkowie
prywatny:
String FullName;
Int Yearsold;
// Członkowie publiczne
publiczny:
void getpersoninfo ()

Cout << "Enter full name: ";
Getline (CIN, FullName);
Cout << "Enter age in years: ";
cin >> lata;

void displaypersoninfo ()

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

;
// główna funkcja
int main ()

// tworzenie obiektu
Osoba osoba;
osoba.getPersoninfo ();
osoba.displaypersoninfo ();
powrót 0;

Ten program C ++ definiuje osobę klasową z dwiema prywatnymi zmiennymi członkowskimi Pełna nazwa I lat, i dwie funkcje członków publicznych getPersoninfo () I displaypersoninfo ().

Funkcja getPersonInfo () wynika z tego, że użytkownik wpisuje pełne imię i nazwisko i wiek osoby. Następnie przechowuje je odpowiednio w prywatnych zmiennych członków i lat, odpowiednio.

Funkcja displaypersoninfo () po prostu drukuje nazwę i wiek osoby.

W funkcji Main () tworzymy osobę obiektową klasy osoby i wywołujemy funkcje getPersoninfo () i displaypersoninfo (), aby skłonić użytkownika do wprowadzenia informacji osoby, a następnie wyświetlanie go na konsoli.

Przykład klas chronionych w c++

Proteced Cecifier ogranicza widoczność członka klasy w klasie i jego podklasach. Weźmy przykład, który wyjaśnia zajęcia chronione w programie C ++.

#włączać
za pomocą przestrzeni nazw Std;
// klasa podstawowa
Osoba klasowa
// Prywatni członkowie
prywatny:
String FullName;
int wiek;
// Protected Member
chroniony:
int idnumber;
// Członkowie publiczne
publiczny:
void getpersoninfo ()

Cout << "Enter full name: ";
Getline (CIN, FullName);
Cout << "Enter age: ";
CIN >> Wiek;

void displaypersoninfo ()

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

;
// Klasy pochodnej
Student klasy: osoba publiczna
// Prywatni członkowie
prywatny:
miasto smyczkowe;
// Członkowie publiczne
publiczny:
void SETID (int id)

// tutaj idnumber jest chronionym członkiem osoby
// klasa, jest dostępna tutaj
idnumber = id;

void getStudentInfo ()

// dzwonienie getpersoninfo (), aby odczytać podstawowe szczegóły
getPersoninfo ();
// Mieście wejściowe
Cout << "Enter city: ";
CIN >> Miasto;

void displayStudentInfo ()

// Wyświetlanie numeru identyfikacyjnego
Cout << "ID Number: " << idNumber << endl;
// wywoływanie displaypersoninfo () w celu wydrukowania podstawowych szczegółów
displaypersoninfo ();
// pokazanie miasta
Cout << "City: " << city << endl;

;
// główna funkcja
int main ()

// tworzenie obiektu
Student;
// Ustawienie numeru identyfikacyjnego
student.SETID (12345);
// Uzyskanie wszystkich szczegółów
student.getStudentInfo ();
// Drukowanie wszystkich szczegółów
student.displayStudentInfo ();
powrót 0;

Tutaj, w tym kodzie, klasa podstawowa jest osobą z prywatnymi członkami Pełna nazwa i wiek i chroniony członek numer identyfikacyjny. Klasa pochodna to student z prywatnym miastem członkowskim i funkcjami członkowski.

Funkcja setId () ustawia numer identyfikacyjny, który definiuje a chroniony członek klasy podstawowej. Funkcja getStudentInfo () odczytuje podstawowe szczegóły ucznia, takie jak pełne imię i nazwisko, wiek i miasto, w którym mieszkają.

displayStudentInfo () Funkcja drukuje wszystkie szczegóły ucznia, które zawierają ich numer identyfikacyjny, pełne imię i nazwisko, wiek i miasto.

Wniosek

Prywatne i chronione specyfikatory dostępu w programach obiektowych Zapewniają enkapsulację i ukrywanie danych. Prywatni członkowie są całkowicie ukryci przed innymi klasami, podczas gdy członkowie chronieni są częściowo ukryci i mogą do nich uzyskać dostęp do klas pochodnych. Wybór między użyciem prywatnych i chronionych specyfikatorów dostępu zależy od projektowania i wdrażania klasy. Przeczytaj artykuł, aby zrozumieć szczegóły zarówno prywatnych, jak i chronionych specyfikatorów dostępu.