Jak kontrolować modyfikatory dostępu w C++: Zrozumienie widoczności członków

Jak Kontrolowac Modyfikatory Dostepu W C Zrozumienie Widocznosci Czlonkow



Ukrywanie danych to jedna z kluczowych funkcji języka C++, która odnosi się do ograniczania dostępu do danych w klasie, aby zapobiec niepożądanemu dostępowi do danych klasy z zewnątrz. Dlatego modyfikatory dostępu służą do definiowania, którzy członkowie klasy są dostępni dla jakiego źródła zewnętrznego, a którzy nie.

Modyfikatory dostępu w C++

Modyfikatory dostępu służą do zarządzania dostępnością i widocznością danych klasy. Ustawiają pewne ograniczenia na członków danych, tak że funkcje zewnętrzne nie mogą uzyskać do nich dostępu. Modyfikatory dostępu są trzech typów w C++:

Modyfikator dostępu publicznego w C++

Wszyscy członkowie klasy zadeklarowani pod słowem kluczowym public będą dostępni dla wszystkich funkcji znajdujących się poza klasą w programie. Operator bezpośredniego dostępu do elementów członkowskich (.), znany również jako operator kropki, może być używany z obiektem tej konkretnej klasy, aby uzyskać dostęp do tych elementów danych.







Przykład

Modyfikator dostępu publicznego służy do deklarowania klasy, a dostęp do jej elementów danych mają inne funkcje programu.



#include

#include

#include

używając przestrzeni nazw std ;
Trójkąt klasowy
{
publiczny :
platforma X , I , z ;
próżnia wejście ( )
{
cout << „Wprowadź bok x trójkąta:-” ;
jedzenie >> X ;
cout << „Wprowadź bok y trójkąta:-” ;
jedzenie >> I ;
cout << „Wprowadź bok z trójkąta:-” ;
jedzenie >> z ;
}
próżnia Obszar ( )
{
platforma S = ( X + I + z ) / 2 ;
platforma obszar = kwadrat ( S * ( S - X ) * ( S - I ) * ( S - z ) ) ;
cout << ' \N Pole Trójkąta =' << obszar ;
}
} ;
wew główny ( )
{
Trójkąt t1 ;
t1. wejście ( ) ;
t1. Obszar ( ) ;
powrót 0 ;
}

Trójkąt jest zdefiniowany jako klasa, a jego parametry znajdują się pod słowem kluczowym public. Następnie obszar trójkąta jest obliczany poza tą klasą poprzez dostęp do elementów danych modyfikatora public.







Użytkownik wprowadza trzy boki trójkąta, a obszar trójkąta jest obliczany poprzez dostęp do wartości spoza klasy, przy użyciu standardowej formuły, która wynosi 13,4164.

Modyfikator dostępu prywatnego w C++

Wszyscy członkowie klasy zadeklarowani pod słowem kluczowym private nie będą dostępni dla żadnej funkcji poza klasą w programie. Te prywatne elementy członkowskie mogą być odczytywane tylko przez bezpośrednich członków tej samej klasy. Jednak zaprzyjaźnione funkcje i klasy również mogą uzyskać dostęp do danych.



Przykład

Deklarowane są dwie klasy public i private, a wartością zwracaną przez program ma być pole trójkąta.

#include

#include

#include

używając przestrzeni nazw std ;
Trójkąt klasowy
{

prywatny :
platforma X , I , z ;
publiczny :
próżnia wejście ( )

{

cout << „Wprowadź bok x trójkąta:-” ;
jedzenie >> X ;
cout << „Wprowadź bok y trójkąta:-” ;
jedzenie >> I ;
cout << „Wprowadź bok z trójkąta:-” ;
jedzenie >> z ;

}
próżnia Obszar ( )
{

platforma S = ( X + I + z ) / 2 ;
platforma obszar = kwadrat ( S * ( S - X ) * ( S - I ) * ( S - z ) ) ;
cout << ' \N Pole trójkąta =' << obszar ;

}

} ;

wew główny ( )
{
Trójkąt t1 ;
t1. wejście ( ) ;
t1. Obszar ( ) ;
powrót 0 ;

}

W funkcji main() obiekt t1 nie ma bezpośredniego dostępu do zmiennej klasy prywatnej float x, yiz, więc można nim manipulować jedynie pośrednio za pomocą publicznej funkcji input(), ponieważ funkcja ta uzyskuje wartości x, yiz.

Pole trójkąta uzyskuje się poprzez dostęp do klasy prywatnej poprzez manipulację nią przy użyciu klasy publicznej. Jeśli wartości x, y i z nie zostaną zadeklarowane w klasie publicznej, wówczas nie będzie można uzyskać do nich dostępu w funkcji main() do obliczeń.

Modyfikator chronionego dostępu w C++

Elementy członkowskie i funkcje objęte chronionym słowem kluczowym są chronione, można uzyskać do nich dostęp tylko w obrębie klasy i klasy pochodnej. Reszta klas nie ma dostępu do swoich danych. Są bardzo chronione.

Przykład

Dane chronione pod chronionym słowem kluczowym można odczytać tylko w obrębie klasy i przez klasę, która jest klasą pochodną. Ten przykład stanowi praktyczną demonstrację modyfikatora chronionego dostępu.

#include

#include

#include

używając przestrzeni nazw std ;
//klasa nadrzędna
Trójkąt klasowy
{

chroniony :
platforma X , I , z ;
} ;
//klasa dziecka
klasa TrójkątDziecko : Trójkąt publiczny {
publiczny :
próżnia wejście ( )

{

cout << „Wprowadź bok x trójkąta:-” ;
jedzenie >> X ;
cout << „Wprowadź bok y trójkąta:-” ;
jedzenie >> I ;
cout << „Wprowadź bok z trójkąta:-” ;
jedzenie >> z ;

}
próżnia Obszar ( )
{
platforma S = ( X + I + z ) / 2 ;
platforma obszar = kwadrat ( S * ( S - X ) * ( S - I ) * ( S - z ) ) ;
cout << ' \N Pole Trójkąta =' << obszar ;

}
} ;

wew główny ( )

{
TrójkątDziecko Dziecko ;
Dziecko. wejście ( ) ;
Dziecko. Obszar ( ) ;
powrót 0 ;

}

TriangleChild jest klasą dziedziczoną, która wywodzi się z klasy Triangle. Zmienne x, yiz są deklarowane w Triangle za pomocą słowa kluczowego chronione. Oznacza to, że te zmienne są chronione, ale TriangleChild może uzyskać do nich dostęp, ponieważ Triangle jest jego klasą nadrzędną. Wartości zmiennych zostały przypisane w TriangleChild mimo, że są zadeklarowane w klasie Triangle.

Dostęp do zmiennych uzyskuje się poprzez klasę podrzędną, a następnie obliczane jest pole trójkąta.

Wniosek

Ukrywanie danych zapobiega niepożądanemu dostępowi do danych klasy z zewnątrz. Modyfikatory dostępu służą do zarządzania dostępnością i widocznością danych w programie. Do ukrywania danych służą modyfikatory dostępu prywatnego, chronionego i publicznego. Dane znajdujące się pod słowem kluczowym public mogą być odczytywane także przez funkcje spoza klasy. Dane zadeklarowane jako prywatne mogą być odczytywane tylko wewnątrz klasy, natomiast dostęp do danych chronionych mogą mieć także klasa nadrzędna i podrzędna.