Modifikátory prístupu v C++
Modifikátory prístupu sa používajú na riadenie dostupnosti a viditeľnosti údajov triedy. Nastavujú určité obmedzenia na dátových členov, aby k nim nemohli pristupovať vonkajšie funkcie. Modifikátory prístupu sú v C++ tri typy:
Modifikátor verejného prístupu v C++
Všetci členovia triedy deklarovaní pod kľúčovým slovom public budú dostupní pre všetky funkcie mimo triedy v rámci programu. Operátor priameho prístupu člena (.), tiež známy ako bodový operátor, možno použiť s objektom tejto špecifickej triedy na prístup k týmto dátovým členom.
Príklad
Modifikátor verejného prístupu sa používa na deklarovanie triedy a k jej dátovým členom majú prístup ostatné funkcie v rámci programu.
#include
#include
#include
pomocou menného priestoru std ;
Triangle Triangle
{
verejnosti :
plavák X , a , s ;
neplatné vstup ( )
{
cout << 'Zadajte stranu x trojuholníka:-' ;
jedenie >> X ;
cout << 'Zadajte stranu y trojuholníka:-' ;
jedenie >> a ;
cout << 'Zadajte stranu z trojuholníka:-' ;
jedenie >> s ;
}
neplatné Oblasť ( )
{
plavák s = ( X + a + s ) / 2 ;
plavák oblasť = sqrt ( s * ( s - X ) * ( s - a ) * ( s - s ) ) ;
cout << ' \n Oblasť trojuholníka = << oblasť ;
}
} ;
int Hlavná ( )
{
Trojuholník t1 ;
t1. vstup ( ) ;
t1. Oblasť ( ) ;
vrátiť 0 ;
}
Triangle je definovaný ako trieda a jej parametre sú pod kľúčovým slovom public. Potom sa plocha trojuholníka vypočíta mimo tejto triedy prostredníctvom prístupu k dátovým členom verejného modifikátora.
Tri strany trojuholníka zadá používateľ a plocha trojuholníka sa vypočíta prístupom k hodnotám mimo triedy pomocou štandardného vzorca, ktorým je 13,4164.
Modifikátor súkromného prístupu v C++
Všetci členovia triedy deklarovaní pod kľúčovým slovom private nebudú v programe dostupní pre žiadnu funkciu mimo triedy. Týchto súkromných členov môžu čítať iba priami členovia v rámci rovnakej triedy. K údajom však môžu pristupovať aj funkcie priateľov a triedy.
Príklad
Dve triedy public a private sú deklarované a návratová hodnota programu má byť oblasť trojuholníka.
#include#include
#include
pomocou menného priestoru std ;
Triangle Triangle
{
súkromné :
plavák X , a , s ;
verejnosti :
neplatné vstup ( )
{
cout << 'Zadajte stranu x trojuholníka:-' ;
jedenie >> X ;
cout << 'Zadajte stranu y trojuholníka:-' ;
jedenie >> a ;
cout << 'Zadajte stranu z trojuholníka:-' ;
jedenie >> s ;
}
neplatné Oblasť ( )
{
plavák s = ( X + a + s ) / 2 ;
plavák oblasť = sqrt ( s * ( s - X ) * ( s - a ) * ( s - s ) ) ;
cout << ' \n Oblasť trojuholníka = << oblasť ;
}
} ;
int Hlavná ( )
{
Trojuholník t1 ;
t1. vstup ( ) ;
t1. Oblasť ( ) ;
vrátiť 0 ;
}
V main() nemôže objekt t1 priamo pristupovať k premennej súkromnej triedy float x, y a z, takže s ním možno manipulovať iba nepriamo cez vstup verejnej funkcie (), keďže táto funkcia získava hodnoty x, y a z.
Oblasť trojuholníka sa získa prístupom k súkromnej triede prostredníctvom manipulácie s ňou pomocou verejnej triedy. Ak hodnoty x, y a z nebudú deklarované vo verejnej triede, nebudú prístupné v main() na výpočty.
Modifikátor chráneného prístupu v C++
Členovia a funkcie pod chráneným kľúčovým slovom sú chránené, možno k nim pristupovať iba v rámci triedy a odvodenej triedy. Zvyšok tried nemá prístup k svojim údajom. Sú vysoko chránené.
Príklad
Chránené údaje pod kľúčovým slovom protected možno čítať iba v rámci triedy a triedou, ktorá je odvodenou triedou. Tento príklad je praktickou ukážkou modifikátora chráneného prístupu.
#include#include
#include
pomocou menného priestoru std ;
//rodičovská trieda
Triangle Triangle
{
chránené :
plavák X , a , s ;
} ;
//trieda detí
trieda TriangleChild : verejný trojuholník {
verejnosti :
neplatné vstup ( )
{
cout << 'Zadajte stranu x trojuholníka:-' ;
jedenie >> X ;
cout << 'Zadajte stranu y trojuholníka:-' ;
jedenie >> a ;
cout << 'Zadajte stranu z trojuholníka:-' ;
jedenie >> s ;
}
neplatné Oblasť ( )
{
plavák s = ( X + a + s ) / 2 ;
plavák oblasť = sqrt ( s * ( s - X ) * ( s - a ) * ( s - s ) ) ;
cout << ' \n Oblasť trojuholníka = << oblasť ;
}
} ;
int Hlavná ( )
{
TriangleChild Child ;
Dieťa. vstup ( ) ;
Dieťa. Oblasť ( ) ;
vrátiť 0 ;
}
TriangleChild je zdedená trieda, ktorá je odvodená od triedy Triangle. Premenné x, y a z sú deklarované v trojuholníku s kľúčovým slovom protected. To znamená, že tieto premenné sú chránené, ale môžu k nim pristupovať TriangleChild, pretože Triangle je jeho rodičovská trieda. Hodnoty premenných boli priradené v TriangleChild, aj keď sú deklarované v triede Triangle.
K premenným sa pristupuje cez podradenú triedu a potom sa vypočíta plocha trojuholníka.
Záver
Skrytie údajov zabraňuje nechcenému prístupu k údajom triedy zvonku. Modifikátory prístupu sa používajú na riadenie dostupnosti a viditeľnosti údajov v programe. Na skrytie údajov sa používajú modifikátory súkromného, chráneného a verejného prístupu. Údaje pod kľúčovým slovom public môžu funkcie čítať aj mimo triedy. Údaje deklarované ako súkromné je možné čítať iba v rámci triedy, zatiaľ čo k chráneným údajom má prístup aj rodičovská a podriadená trieda.