Jak ovládat modifikátory přístupu v C++: Pochopení viditelnosti členů

Jak Ovladat Modifikatory Pristupu V C Pochopeni Viditelnosti Clenu



Skrytí dat je jednou z klíčových funkcí C++, která se týká omezení přístupu k datům ve třídě, aby se zabránilo nechtěnému přístupu k datům třídy zvenčí. Modifikátory přístupu se tedy používají k definování toho, které členy třídy jsou přístupné kterému vnějšímu zdroji a které ne.

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.