Jaka jest różnica między prywatnymi i chronionymi członkami klas C++

Jaka Jest Roznica Miedzy Prywatnymi I Chronionymi Czlonkami Klas C



C++ to język programowania zorientowanego obiektowo (OOP), który zapewnia mechanizm hermetyzacji danych i funkcji w jedną jednostkę zwaną klasą. Jedną z istotnych cech klasy jest możliwość określenia poziomu dostępu dla jej członków. W programowaniu obiektowym specyfikatory dostępu służą do kontrolowania widoczności i dostępności pól i metod klasy. Chroniony , publiczny , I prywatny poziomy dostępu to trzy podstawowe typy poziomów dostępu w C++.

W tym artykule omówimy różnicę między dwoma głównymi specyfikator dostępu S, prywatny I chroniony członków klasy C++.

Specyfikator dostępu prywatnego

Członkowie prywatni są deklarowane za pomocą słowa kluczowego „ prywatny ‘. The specyfikator dostępu prywatnego ogranicza dostęp członków klasy tylko do samej klasy. Kod spoza klasy nie może uzyskać dostępu do prywatnego członka ani go zmienić. Oznacza to, że tylko metody zadeklarowane w klasie mogą uzyskiwać dostęp i działać na członkowie prywatni , nawet klasy pochodne nie mają dostępu członkowie prywatni . Powszechne użycie członkowie prywatni jest zapewnienie poprawnego działania klasy. Członkowie prywatni są używane do enkapsulacji danych klasy i zapewnienia poziomu abstrakcji użytkownikom klasy.







#include
za pomocą przestrzeń nazw standardowe ;

klasa gracz {

prywatny :
nazwa ciągu ;
int wiek ;

publiczny :
próżnia getPlayer ( )
{
cout << 'Wprowadź imię: ' ;
jedzenie >> nazwa ;
cout << 'Wpisz wiek: ' ;
jedzenie >> wiek ;
}
próżnia Pokaż odtwarzacz ( )
{
cout << 'Nazwa: ' << nazwa << koniec ;
cout << 'Wiek: ' << wiek << koniec ;
}
} ;

int główny ( )
{
gracz pl ;
pl. getPlayer ( ) ;
pl. Pokaż odtwarzacz ( ) ;

powrót 0 ;
}

W powyższym kodzie używamy publicznych metod członkowskich getPlayer() I pokażOdtwarzacz() aby uzyskać dostęp do tych dwóch prywatny członkowie nazwa I wiek . The getPlayer() Funkcja pobiera dane od użytkowników i wyświetla je na ekranie za pomocą pokażOdtwarzacz() funkcjonować.



Wyjście







Specyfikator dostępu chronionego

Członkowie chronieni klasy mogą być dostępne zarówno dla klas pochodnych, jak i funkcji składowych samej klasy. Członkowie chronieni są używane w celu zapewnienia poziomu dostępu do klas pochodnych bez ujawniania szczegółów implementacji światu zewnętrznemu. Członkowie chronieni są deklarowane za pomocą słowa kluczowego „ chroniony ' i okrężnica (:) postać. Członkowie chronieni pozwalają na rozszerzanie i modyfikację klasy bez naruszania jej integralności. Klasa pochodna może używać chronionych członków aby udoskonalić lub dostosować zachowanie klasy bazowej.

Oto przykład klasy z chronionych członków :



#include
używając przestrzeni nazw std;

klasowy gracz {
prywatny:
nazwa ciągu;
wiek całkowity;

chroniony:
cele int;

publiczny:
unieważnić getPlayer ( )
{
cout <> nazwa;
cout <> wiek;
}
unieważnić program ShowPlayer ( )
{
cout << 'Nazwa: ' << nazwa << koniec;
cout << 'Wiek: ' << wiek << koniec;
}
} ;

gracz klasowy1 : gracz publiczny {

prywatny:
kraj ciągów;

publiczny:
unieważnić set_goals ( int g )
{
cele = g;
}
anuluj getPlayer1 ( )
{
getPlayer ( ) ;
cout <> kraj;
}
anuluj showPlayer1 ( )
{
cout << 'cele: ' << cele << koniec;
Pokaż odtwarzacz ( ) ;
cout << 'Kraj: ' << kraj << koniec;
}
} ;

int główny ( )
{
gracz1 pl;
pl.ustaw_cele ( 101 ) ;
pl.getPlayer1 ( ) ;
pl.showPlayer1 ( ) ;

powrót 0 ;
}

The gracz klasa składa się z dwóch członkowie prywatni , nazwa I wiek , jeden chroniony członek, cele , I prywatny członkowie są wykorzystywani wewnątrz publiczny funkcje członkowskie, getPlayer() I pokażOdtwarzacz() . Są dwie klasy, gracz I gracz1 , z których obie są klasami podstawowymi. Jeden prywatny członek, kraj i trzy publiczny metody składowe tworzą gracz1 klasa. Wyznaczone cele() służy do zmiany chronionego członka cele' wartość. pobierzGracza1() wzywa getPlayer() funkcja członkowska gracz class, jednocześnie pobierając dane wejściowe dla kraju. podobny do tego, pokażGracz1() wzywa pokażOdtwarzacz() funkcja członkowska i drukuje cele I kraj wartości.

Wyjście

Różnica między prywatnymi i chronionymi członkami klas C++

Oto lista niektórych kluczowych różnic między Prywatny I Chroniony członków klas C++.

1: Zakres i funkcjonalność

Rozważając użycie specyfikatorów dostępu, należy dokładnie przemyśleć specyfikatory zakres I funkcjonalność programu. A specyfikator dostępu prywatnego zapewnia najwyższy poziom bezpieczeństwa i zapobiega niezamierzonemu dostępowi do zmiennych i metod. Z drugiej strony A chroniony specyfikator dostępu oferuje szerszy zakres dostępności i elastyczności, co jest niezbędne przy planowaniu dziedziczenia klas pochodnych z klasy bazowej.

2: Poziom dostępu

Główna różnica między prywatny I chronionych członków to poziom dostępu, jaki zapewniają. Chroniony członkowie mogą być dostępni zarówno dla klas pochodnych klasy, jak i funkcji składowych, ale prywatny członków można uzyskać tylko przez funkcje składowe klasy.

3: Enkapsulacja klasy

Kolejna istotna różnica między prywatny I chroniony Members to ich rola w utrzymywaniu hermetyzacji klasy. Aby wyizolować dane i zapewnić użytkownikom klasy pewien poziom abstrakcji, prywatny członkowie są zatrudnieni. Chroniony członkowie są zatrudniani do zarządzania strukturą dziedziczenia i zapewniania dostępu do członków klasy bazowej przez klasy pochodne.

Końcowe przemyślenia

Prywatny I chronionych członków to dwa podstawowe poziomy dostępu w klasie C++. The prywatny specyfikator dostępu sprawia, że ​​członkowie klasy są niedostępni dla wszystkich użytkowników zewnętrznych i służy do przechowywania informacji prywatny w klasie. Dla kontrastu A chroniony specyfikator dostępu umożliwia dostęp do członków klasy tylko przez klasy pochodne, jest używany do zapewnienia funkcjonalności klasy podstawowej i umożliwia modyfikację bez zmiany zachowania klasy podstawowej. Poziom dostępu członków klasy odgrywa kluczową rolę w utrzymaniu hermetyzacji klasy i zapewnianiu poziomu dostępu użytkownikom klasy.