Hur man kontrollerar åtkomstmodifierare i C++: Förstå medlemssynlighet

Hur Man Kontrollerar Atkomstmodifierare I C Forsta Medlemssynlighet



Datadöljning är en av nyckelfunktionerna i C++ som hänvisar till att begränsa åtkomsten av data i en klass för att förhindra oönskad åtkomst till data från en klass utifrån. Följaktligen används åtkomstmodifierarna för att definiera vilka klassmedlemmar som är tillgängliga för vilken extern källa och vilka inte.

Åtkomstmodifierare i C++

Åtkomstmodifierare används för att hantera tillgängligheten och synligheten av data i en klass. De sätter vissa begränsningar för datamedlemmarna så att de inte kan nås av externa funktioner. Åtkomstmodifierarna är av tre typer i C++:

Public Access Modifier i C++

Alla medlemmar i klassen som deklareras under nyckelordet offentlig kommer att vara tillgängliga för alla funktioner utanför klassen i programmet. Operatören för direkt medlemsåtkomst (.) även känd som punktoperatorn kan användas med objektet för den specifika klassen för att komma åt dessa datamedlemmar.







Exempel

Public access-modifieraren används för att deklarera en klass, och dess datamedlemmar nås av de andra funktionerna i programmet.



#inkludera

#include

#inkludera

använder namnutrymme std ;
klass Triangel
{
offentlig :
flyta x , och , Med ;
tomhet inmatning ( )
{
cout << 'Ange sidan x i en triangel:-' ;
äter >> x ;
cout << 'Ange sidan y i en triangel:-' ;
äter >> och ;
cout << 'Ange sidan z i en triangel:-' ;
äter >> Med ;
}
tomhet Område ( )
{
flyta s = ( x + och + Med ) / 2 ;
flyta område = sqrt ( s * ( s - x ) * ( s - och ) * ( s - Med ) ) ;
cout << ' \n Triangelns area =' << område ;
}
} ;
int huvud ( )
{
Triangel t1 ;
t1. inmatning ( ) ;
t1. Område ( ) ;
lämna tillbaka 0 ;
}

Triangeln definieras som klassen och dess parametrar finns under det offentliga nyckelordet. Sedan beräknas arean av triangeln utanför denna klass genom att komma åt datamedlemmarna i den offentliga modifieraren.







De tre sidorna av triangeln matas in av användaren och arean av triangeln beräknas genom att komma åt värdena utanför klassen, med hjälp av standardformeln, som är 13,4164.

Privat åtkomstmodifierare i C++

Alla medlemmar i klassen som deklareras under nyckelordet privat kommer inte att vara tillgängliga för någon funktion utanför klassen i programmet. Dessa privata medlemmar kan endast läsas av de direkta medlemmarna inom samma klass. Men vänfunktioner och klasser kan också komma åt data.



Exempel

De två klasserna offentliga och privata deklareras, och programmets returvärde ska vara triangelns area.

#inkludera

#include

#inkludera

använder namnutrymme std ;
klass Triangel
{

privat :
flyta x , och , Med ;
offentlig :
tomhet inmatning ( )

{

cout << 'Ange sidan x i en triangel:-' ;
äter >> x ;
cout << 'Ange sidan y i en triangel:-' ;
äter >> och ;
cout << 'Ange sidan z i en triangel:-' ;
äter >> Med ;

}
tomhet Område ( )
{

flyta s = ( x + och + Med ) / 2 ;
flyta område = sqrt ( s * ( s - x ) * ( s - och ) * ( s - Med ) ) ;
cout << ' \n Triangelns area =' << område ;

}

} ;

int huvud ( )
{
Triangel t1 ;
t1. inmatning ( ) ;
t1. Område ( ) ;
lämna tillbaka 0 ;

}

I main() kan objektet t1 inte direkt komma åt den privata klassvariabeln float x, y och z, så det kan endast manipuleras indirekt genom den offentliga funktionen input(), eftersom denna funktion erhåller värdena för x, y och z.

Arean av triangeln erhålls genom att komma åt den privata klassen genom att manipulera den med hjälp av offentlig klass. Om värdena för x, y och z inte kommer att deklareras i offentlig klass, kommer de inte att nås i main() för beräkningar.

Protected Access Modifier i C++

Medlemmarna och funktionerna under det skyddade nyckelordet är skyddade, de kan endast nås inom klassen och härledd klass. Resten av klasserna kan inte komma åt sina data. De är mycket skyddade.

Exempel

Den skyddade informationen under det skyddade nyckelordet kan endast läsas inom klassen och av klassen som är den härledda klassen. Detta exempel är en praktisk demonstration av modifieraren för skyddad åtkomst.

#inkludera

#include

#inkludera

använder namnutrymme std ;
//förälderklass
klass Triangel
{

skyddad :
flyta x , och , Med ;
} ;
//barnklass
klass TriangelBarn : offentlig triangel {
offentlig :
tomhet inmatning ( )

{

cout << 'Ange sidan x i en triangel:-' ;
äter >> x ;
cout << 'Ange sidan y i en triangel:-' ;
äter >> och ;
cout << 'Ange sidan z i en triangel:-' ;
äter >> Med ;

}
tomhet Område ( )
{
flyta s = ( x + och + Med ) / 2 ;
flyta område = sqrt ( s * ( s - x ) * ( s - och ) * ( s - Med ) ) ;
cout << ' \n Triangelns area =' << område ;

}
} ;

int huvud ( )

{
TriangleChild Barn ;
Barn. inmatning ( ) ;
Barn. Område ( ) ;
lämna tillbaka 0 ;

}

TriangleChild är en ärvd klass som härrör från klassen Triangle. Variablerna x, y och z deklareras i Triangle med det skyddade nyckelordet. Detta innebär att dessa variabler är skyddade men kan nås av TriangleChild eftersom Triangle är dess överordnade klass. Variablernas värden har tilldelats i TriangleChild även om de deklareras i klassen Triangle.

Variablerna nås via barnklassen och sedan beräknas arean av en triangel.

Slutsats

Datadöljning förhindrar oönskad åtkomst till data från en klass utifrån. Åtkomstmodifierare används för att hantera tillgängligheten och synligheten av data i ett program. Privata, skyddade och offentliga åtkomstmodifierare används för att dölja data. Data under det offentliga nyckelordet kan också läsas av funktionerna utanför klassen. Data som deklarerats som privat kan bara läsas inom klassen, medan skyddad data kan nås av föräldern och den underordnade klassen också.