Hvordan kontrollere tilgangsmodifikatorer i C++: Forstå medlemssynlighet

Hvordan Kontrollere Tilgangsmodifikatorer I C Forsta Medlemssynlighet



Dataskjuling er en av nøkkelfunksjonene til C++ som refererer til begrensende tilgang til data i en klasse for å forhindre uønsket tilgang til dataene til en klasse utenfra. Derfor brukes tilgangsmodifikatorene til å definere hvilke klassemedlemmer som er tilgjengelige for hvilken ekstern kilde og hvilke ikke.

Tilgangsmodifikatorer i C++

Tilgangsmodifikatorer brukes til å administrere tilgjengeligheten og synligheten til dataene til en klasse. De setter noen begrensninger for datamedlemmene slik at de ikke kan nås av eksterne funksjoner. Tilgangsmodifikatorene er av tre typer i C++:

Public Access Modifier i C++

Alle medlemmene av klassen erklært under nøkkelordet offentlig vil være tilgjengelige for alle funksjonene utenfor klassen i programmet. Den direkte medlemstilgangsoperatøren (.) også kjent som punktoperatøren kan brukes med objektet til den spesifikke klassen for å få tilgang til disse datamedlemmene.







Eksempel

Offentlig tilgangsmodifikatoren brukes til å deklarere en klasse, og dens datamedlemmer får tilgang til de andre funksjonene i programmet.



#include

#include

#inkluder

bruker navneområde std ;
klasse Triangel
{
offentlig :
flyte x , og , Med ;
tomrom input ( )
{
cout << 'Skriv inn siden x i en trekant:-' ;
spiser >> x ;
cout << 'Skriv inn siden y i en trekant:-' ;
spiser >> og ;
cout << 'Skriv inn siden z i en trekant:-' ;
spiser >> Med ;
}
tomrom Område ( )
{
flyte s = ( x + og + Med ) / 2 ;
flyte område = sqrt ( s * ( s - x ) * ( s - og ) * ( s - Med ) ) ;
cout << ' \n Areal av trekant =' << område ;
}
} ;
int hoved- ( )
{
Trekant t1 ;
t1. input ( ) ;
t1. Område ( ) ;
komme tilbake 0 ;
}

Trekanten er definert som klassen og dens parametere er under det offentlige nøkkelordet. Deretter beregnes arealet av trekanten utenfor denne klassen gjennom tilgang til datamedlemmene til den offentlige modifikatoren.







De tre sidene av trekanten legges inn av brukeren, og arealet av trekanten beregnes ved å få tilgang til verdiene utenfor klassen, ved å bruke standardformelen, som er 13,4164.

Modifikator for privat tilgang i C++

Alle medlemmene av klassen erklært under nøkkelordet private vil ikke være tilgjengelige for noen funksjon utenfor klassen i programmet. Disse private medlemmene kan bare leses av de direkte medlemmene i samme klasse. Imidlertid kan vennefunksjoner og klasser også få tilgang til dataene.



Eksempel

De to klassene offentlige og private er deklarert, og returverdien av programmet skal være arealet av trekanten.

#include

#include

#inkluder

bruker navneområde std ;
klasse Triangel
{

privat :
flyte x , og , Med ;
offentlig :
tomrom input ( )

{

cout << 'Skriv inn siden x i en trekant:-' ;
spiser >> x ;
cout << 'Skriv inn siden y i en trekant:-' ;
spiser >> og ;
cout << 'Skriv inn siden z i en trekant:-' ;
spiser >> Med ;

}
tomrom Område ( )
{

flyte s = ( x + og + Med ) / 2 ;
flyte område = sqrt ( s * ( s - x ) * ( s - og ) * ( s - Med ) ) ;
cout << ' \n Areal av trekant =' << område ;

}

} ;

int hoved- ( )
{
Trekant t1 ;
t1. input ( ) ;
t1. Område ( ) ;
komme tilbake 0 ;

}

I main() kan ikke objektet t1 direkte få tilgang til den private klassevariabelen float x, y og z, så det kan bare indirekte manipuleres gjennom den offentlige funksjonen input(), siden denne funksjonen henter verdiene til x, y og z.

Arealet av trekanten oppnås ved å få tilgang til den private klassen ved å manipulere den ved å bruke offentlig klasse. Hvis verdiene av x, y og z ikke vil bli deklarert i offentlig klasse, vil de ikke bli åpnet i main() for beregninger.

Protected Access Modifier i C++

Medlemmene og funksjonene under det beskyttede nøkkelordet er beskyttet, de kan bare nås innenfor klassen og avledet klasse. Resten av klassene har ikke tilgang til dataene sine. De er svært beskyttet.

Eksempel

De beskyttede dataene under det beskyttede nøkkelordet kan bare leses innenfor klassen og av klassen som er den avledede klassen. Dette eksemplet er den praktiske demonstrasjonen av modifikatoren for beskyttet tilgang.

#include

#include

#inkluder

bruker navneområde std ;
//foreldreklasse
klasse Triangel
{

beskyttet :
flyte x , og , Med ;
} ;
//barneklasse
klasse TriangleChild : offentlig trekant {
offentlig :
tomrom input ( )

{

cout << 'Skriv inn siden x i en trekant:-' ;
spiser >> x ;
cout << 'Skriv inn siden y i en trekant:-' ;
spiser >> og ;
cout << 'Skriv inn siden z i en trekant:-' ;
spiser >> Med ;

}
tomrom Område ( )
{
flyte s = ( x + og + Med ) / 2 ;
flyte område = sqrt ( s * ( s - x ) * ( s - og ) * ( s - Med ) ) ;
cout << ' \n Areal av trekant =' << område ;

}
} ;

int hoved- ( )

{
TriangleChild Barn ;
Barn. input ( ) ;
Barn. Område ( ) ;
komme tilbake 0 ;

}

TriangleChild er en arvet klasse som er avledet fra klassen Triangle. Variablene x, y og z er deklarert i Triangle med det beskyttede nøkkelordet. Dette betyr at disse variablene er beskyttet, men kan nås av TriangleChild siden Triangle er dens overordnede klasse. Verdiene til variabler har blitt tildelt i TriangleChild selv om de er deklarert i Triangle-klassen.

Du får tilgang til variablene gjennom barneklassen, og deretter beregnes arealet av en trekant.

Konklusjon

Dataskjuling forhindrer uønsket tilgang til dataene til en klasse utenfra. Tilgangsmodifikatorer brukes til å administrere tilgjengeligheten og synligheten til dataene i et program. Modifikatorer for privat, beskyttet og offentlig tilgang brukes til å skjule dataene. Data under det offentlige nøkkelordet kan også leses av funksjonene utenfor klassen. Dataene som er erklært som private kan bare leses innenfor klassen, mens beskyttede data også kan nås av forelder og barneklasse.