Modifikátory přístupu v C++
Modifikátory přístupu se používají ke správě přístupnosti a viditelnosti dat třídy. Nastavují určitá omezení pro datové členy, aby k nim nemohly přistupovat vnější funkce. Modifikátory přístupu jsou v C++ tří typů:
Modifikátor veřejného přístupu v C++
Všichni členové třídy deklarovaní pod klíčovým slovem public budou k dispozici všem funkcím mimo třídu v rámci programu. Operátor přímého přístupu člena (.), také známý jako operátor tečky, lze použít s objektem této specifické třídy pro přístup k těmto datovým členům.
Příklad
Modifikátor veřejného přístupu se používá k deklaraci třídy a k jejím datovým členům přistupují ostatní funkce v rámci programu.
#include
#include
#include
pomocí jmenného prostoru std ;
třída trojúhelník
{
veřejnost :
plovák X , a , S ;
prázdnota vstup ( )
{
cout << 'Zadejte stranu x trojúhelníku:-' ;
jíst >> X ;
cout << 'Zadejte stranu y trojúhelníku:-' ;
jíst >> a ;
cout << 'Zadejte stranu z trojúhelníku:-' ;
jíst >> S ;
}
prázdnota Plocha ( )
{
plovák s = ( X + a + S ) / 2 ;
plovák plocha = sqrt ( s * ( s - X ) * ( s - a ) * ( s - S ) ) ;
cout << ' \n Oblast trojúhelníku = << plocha ;
}
} ;
int hlavní ( )
{
Trojúhelník t1 ;
t1. vstup ( ) ;
t1. Plocha ( ) ;
vrátit se 0 ;
}
Triangle je definován jako třída a její parametry jsou pod klíčovým slovem public. Potom se pomocí přístupu k datovým členům modifikátoru public vypočítá plocha trojúhelníku mimo tuto třídu.
Tři strany trojúhelníku zadá uživatel a plocha trojúhelníku se vypočítá přístupem k hodnotám mimo třídu pomocí standardního vzorce, který je 13,4164.
Modifikátor soukromého přístupu v C++
Všichni členové třídy deklarovaní pod klíčovým slovem private nebudou v programu k dispozici žádné funkci mimo třídu. Tyto soukromé členy mohou číst pouze přímí členové ve stejné třídě. K datům však mohou přistupovat i funkce přátel a třídy.
Příklad
Jsou deklarovány dvě třídy public a private a návratová hodnota programu má být oblast trojúhelníku.
#include#include
#include
pomocí jmenného prostoru std ;
třída trojúhelník
{
soukromé :
plovák X , a , S ;
veřejnost :
prázdnota vstup ( )
{
cout << 'Zadejte stranu x trojúhelníku:-' ;
jíst >> X ;
cout << 'Zadejte stranu y trojúhelníku:-' ;
jíst >> a ;
cout << 'Zadejte stranu z trojúhelníku:-' ;
jíst >> S ;
}
prázdnota Plocha ( )
{
plovák s = ( X + a + S ) / 2 ;
plovák plocha = sqrt ( s * ( s - X ) * ( s - a ) * ( s - S ) ) ;
cout << ' \n Oblast trojúhelníku = << plocha ;
}
} ;
int hlavní ( )
{
Trojúhelník t1 ;
t1. vstup ( ) ;
t1. Plocha ( ) ;
vrátit se 0 ;
}
V main() nemůže objekt t1 přímo přistupovat k proměnné soukromé třídy float x, yaz, takže s ním lze manipulovat pouze nepřímo prostřednictvím veřejné funkce input(), protože tato funkce získává hodnoty x, y a z.
Oblast trojúhelníku se získá přístupem k soukromé třídě pomocí manipulace s ní pomocí veřejné třídy. Pokud hodnoty x, y a z nebudou deklarovány ve veřejné třídě, nebudou k nim přistupovat v main() pro výpočty.
Modifikátor chráněného přístupu v C++
Členové a funkce pod klíčovým slovem protected jsou chráněny, lze k nim přistupovat pouze v rámci třídy a odvozené třídy. Zbytek tříd nemá přístup ke svým datům. Jsou vysoce chráněni.
Příklad
Chráněná data pod klíčovým slovem protected lze číst pouze v rámci třídy a třídou, která je odvozenou třídou. Tento příklad je praktickou ukázkou modifikátoru chráněného přístupu.
#include#include
#include
pomocí jmenného prostoru std ;
//rodičovská třída
třída trojúhelník
{
chráněný :
plovák X , a , S ;
} ;
//třída dětí
třída TriangleChild : veřejný trojúhelník {
veřejnost :
prázdnota vstup ( )
{
cout << 'Zadejte stranu x trojúhelníku:-' ;
jíst >> X ;
cout << 'Zadejte stranu y trojúhelníku:-' ;
jíst >> a ;
cout << 'Zadejte stranu z trojúhelníku:-' ;
jíst >> S ;
}
prázdnota Plocha ( )
{
plovák s = ( X + a + S ) / 2 ;
plovák plocha = sqrt ( s * ( s - X ) * ( s - a ) * ( s - S ) ) ;
cout << ' \n Oblast trojúhelníku = << plocha ;
}
} ;
int hlavní ( )
{
TriangleChild Child ;
Dítě. vstup ( ) ;
Dítě. Plocha ( ) ;
vrátit se 0 ;
}
TriangleChild je zděděná třída, která je odvozena od třídy Triangle. Proměnné x, y a z jsou deklarovány v trojúhelníku s klíčovým slovem protected. To znamená, že tyto proměnné jsou chráněny, ale mohou k nim přistupovat TriangleChild, protože Triangle je jeho rodičovská třída. Hodnoty proměnných byly přiřazeny v TriangleChild, i když jsou deklarovány ve třídě Triangle.
K proměnným se přistupuje prostřednictvím podřízené třídy a poté se vypočítá plocha trojúhelníku.
Závěr
Skrytí dat zabraňuje nechtěnému přístupu k datům třídy zvenčí. Modifikátory přístupu se používají ke správě přístupnosti a viditelnosti dat v programu. Pro skrytí dat se používají modifikátory soukromého, chráněného a veřejného přístupu. Data pod klíčovým slovem public lze číst i funkcemi mimo třídu. Data deklarovaná jako soukromá lze číst pouze v rámci třídy, zatímco k chráněným datům má přístup také nadřazená a podřízená třída.