Kako kontrolirati modifikatore pristupa u C++: Razumijevanje vidljivosti članova

Kako Kontrolirati Modifikatore Pristupa U C Razumijevanje Vidljivosti Clanova



Skrivanje podataka jedna je od ključnih značajki C++ koja se odnosi na ograničavanje pristupa podacima u klasi kako bi se spriječio neželjeni pristup podacima klase izvana. Stoga se modifikatori pristupa koriste za definiranje koji su članovi klase dostupni kojem vanjskom izvoru, a koji ne.

Modifikatori pristupa u C++

Modifikatori pristupa koriste se za upravljanje pristupačnošću i vidljivošću podataka klase. Oni postavljaju neka ograničenja za članove podataka tako da im vanjske funkcije ne mogu pristupiti. Modifikatori pristupa su tri vrste u C++:

Modifikator javnog pristupa u C++

Svi članovi klase deklarirani pod ključnom riječi public bit će dostupni svim funkcijama izvan klase unutar programa. Operator izravnog pristupa članu (.) poznat i kao operator točka može se koristiti s objektom te specifične klase za pristup ovim članovima podataka.







Primjer

Modifikator javnog pristupa koristi se za deklariranje klase, a njenim članovima podataka pristupaju druge funkcije unutar programa.



#include

#include

#include

koristeći prostor imena std ;
klasa Trokut
{
javnost :
plutati x , i , S ;
poništiti ulazni ( )
{
cout << 'Unesite stranicu x trokuta:-' ;
jelo >> x ;
cout << 'Unesite stranicu y trokuta:-' ;
jelo >> i ;
cout << 'Unesite stranicu z trokuta:-' ;
jelo >> S ;
}
poništiti Površina ( )
{
plutati s = ( x + i + S ) / 2 ;
plutati područje = sqrt ( s * ( s - x ) * ( s - i ) * ( s - S ) ) ;
cout << ' \n Površina trokuta =' << područje ;
}
} ;
int glavni ( )
{
Trokut t1 ;
         t1. ulazni ( ) ;
         t1. Površina ( ) ;
povratak 0 ;
}

Trokut je definiran kao klasa i njegovi parametri su ispod ključne riječi public. Zatim se površina trokuta izračunava izvan ove klase kroz pristup podacima članova javnog modifikatora.







Tri stranice trokuta unosi korisnik, a površina trokuta se izračunava pristupom vrijednostima izvan klase, koristeći standardnu ​​formulu, koja iznosi 13,4164.

Modifikator privatnog pristupa u C++

Svi članovi klase deklarirani pod ključnom riječi private neće biti dostupni niti jednoj funkciji izvan klase u programu. Ove privatne članove mogu čitati samo izravni članovi unutar iste klase. Međutim, prijateljske funkcije i klase također mogu pristupiti podacima.



Primjer

Dvije klase public i private su deklarirane, a povratna vrijednost programa treba biti površina trokuta.

#include

#include

#include

koristeći prostor imena std ;
klasa Trokut
{

privatna :
plutati x , i , S ;
javnost :
poništiti ulazni ( )

{

cout << 'Unesite stranicu x trokuta:-' ;
jelo >> x ;
cout << 'Unesite stranicu y trokuta:-' ;
jelo >> i ;
cout << 'Unesite stranicu z trokuta:-' ;
jelo >> S ;

}
poništiti Površina ( )
{

plutati s = ( x + i + S ) / 2 ;
plutati područje = sqrt ( s * ( s - x ) * ( s - i ) * ( s - S ) ) ;
cout << ' \n Površina trokuta =' << područje ;

}

} ;

int glavni ( )
{
Trokut t1 ;
        t1. ulazni ( ) ;
        t1. Površina ( ) ;
povratak 0 ;

}

U main(), objekt t1 ne može izravno pristupiti privatnoj varijabli klase float x, y i z, tako da se može neizravno manipulirati putem javne funkcije input(), budući da ova funkcija dobiva vrijednosti x, y i z.

Područje trokuta dobiva se pristupanjem privatnoj klasi manipuliranjem njome korištenjem javne klase. Ako vrijednosti x, y i z neće biti deklarirane u javnoj klasi, tada im se neće pristupiti u main() za izračune.

Modifikator zaštićenog pristupa u C++

Članovi i funkcije pod ključnom riječi protected su zaštićeni, može im se pristupiti samo unutar klase i izvedene klase. Ostali razredi ne mogu pristupiti svojim podacima. Vrlo su zaštićeni.

Primjer

Zaštićeni podaci pod zaštićenom ključnom riječi mogu se čitati samo unutar klase i od strane klase koja je izvedena klasa. Ovaj primjer je praktična demonstracija modifikatora zaštićenog pristupa.

#include

#include

#include

koristeći prostor imena std ;
//roditeljska klasa
klasa Trokut
{

zaštićen :
plutati x , i , S ;
} ;
//razred djeteta
klasa TriangleChild : javni trokut {
javnost :
poništiti ulazni ( )

{

cout << 'Unesite stranicu x trokuta:-' ;
jelo >> x ;
cout << 'Unesite stranicu y trokuta:-' ;
jelo >> i ;
cout << 'Unesite stranicu z trokuta:-' ;
jelo >> S ;

}
poništiti Površina ( )
{
plutati s = ( x + i + S ) / 2 ;
plutati područje = sqrt ( s * ( s - x ) * ( s - i ) * ( s - S ) ) ;
cout << ' \n Površina trokuta =' << područje ;

}
} ;

int glavni ( )

{
TriangleChild Dijete ;
Dijete. ulazni ( ) ;
Dijete. Površina ( ) ;
povratak 0 ;

}

TriangleChild je naslijeđena klasa koja je izvedena iz klase Triangle. Varijable x, y i z deklarirane su u Triangleu sa zaštićenom ključnom riječi. To znači da su te varijable zaštićene, ali im može pristupiti TriangleChild jer je Triangle njegova nadređena klasa. Vrijednosti varijabli dodijeljene su u TriangleChild iako su deklarirane u klasi Triangle.

Varijablama se pristupa preko podređene klase, a zatim se izračunava površina trokuta.

Zaključak

Skrivanje podataka sprječava neželjeni pristup podacima klase izvana. Modifikatori pristupa koriste se za upravljanje pristupačnošću i vidljivošću podataka u programu. Privatni, zaštićeni i javni modifikatori pristupa koriste se za skrivanje podataka. Podatke pod ključnom riječi public mogu čitati i funkcije izvan klase. Podaci deklarirani kao privatni mogu se čitati samo unutar klase, dok zaštićenim podacima mogu pristupiti i roditeljska i podređena klasa.