Šajā apmācībā mēs ar piemēriem uzzināsim par piekļuves modifikatoriem C ++ klasēm. C ++ piekļuves modifikatori ir publiski, privāti un aizsargāti.
Viena no objektorientēto programmēšanas valodu, piemēram, C ++, galvenajām iezīmēm ir datu slēpšana .
Datu slēpšana attiecas uz piekļuves ierobežošanu klases datu dalībniekiem. Tas tiek darīts, lai novērstu citu funkciju un klašu sagrozīšanu ar klases datiem.
Tomēr ir svarīgi arī padarīt dažas dalībnieka funkcijas un dalībnieku datus pieejamus, lai slēptos datus varētu netieši manipulēt.
C ++ piekļuves modifikatori ļauj mums noteikt, kuri klases dalībnieki ir pieejami citām klasēm un funkcijām, un kuri nav.
Piemēram,
class Patient ( private: int patientNumber; string diagnosis; public: void billing() ( // code ) void makeAppointment() ( // code ) );
Šeit mainīgie pacienta numurs un Patient
klases diagnostika tiek paslēpti, izmantojot private
atslēgvārdu, savukārt dalībnieku funkcijas tiek padarītas pieejamas, izmantojot public
atslēgvārdu.
C ++ piekļuves modifikatoru veidi
Programmā C ++ ir 3 piekļuves modifikatori:
public
private
protected
publiskās piekļuves modifikators
public
Atslēgvārds tiek izmantots, lai izveidotu sabiedrības locekļiem (dati un funkcijas).- Sabiedrības biedriem var piekļūt no jebkuras programmas daļas.
1. piemērs: C ++ publiskās piekļuves pārveidotājs
#include using namespace std; // define a class class Sample ( // public elements public: int age; void displayAge() ( cout << "Age = " << age << endl; ) ); int main() ( // declare a class object Sample obj1; cout <> obj1.age; // call class function obj1.displayAge(); return 0; )
Izeja:
Ievadiet savu vecumu: 20 Vecums = 20
Šajā programmā mēs esam izveidojuši klasi ar nosaukumu Sample
, kurā ir public
mainīgs vecums un public
funkcija displayAge()
.
Gadā main()
mēs esam izveidojuši objektu, kura Sample
nosaukums ir obj1. Pēc tam mēs tieši piekļūstam publiskajiem elementiem, izmantojot kodus obj.age
un obj.displayAge()
.
privāts piekļuves pārveidotājs
private
Atslēgvārds tiek izmantots, lai izveidotu privātos dalībniekus (dati un funkcijas).- Privātajiem dalībniekiem var piekļūt tikai no klases.
- Tomēr draugu klases un draugu funkcijas var piekļūt privātiem dalībniekiem.
2. piemērs: C ++ privātās piekļuves specifikators
#include using namespace std; // define a class class Sample ( // private elements private: int age; // public elements public: void displayAge(int a) ( age = a; cout << "Age = " << age << endl; ) ); int main() ( int ageInput; // declare an object Sample obj1; cout <> ageInput; // call function and pass ageInput as argument obj1.displayAge(ageInput); return 0; )
Izeja:
Ievadiet savu vecumu: 20 Vecums = 20
In main()
objekts obj1 nevar tieši piekļūt klases mainīgajam vecumam.
// error cin>> obj1.age;
Ar sabiedrisko funkciju mēs varam netieši manipulēt ar vecumu displayAge()
, jo šī funkcija piešķir vecumu tajā nodotajam argumentam, ti, funkcijas parametram int a
.
aizsargāts piekļuves modifikators
Pirms mēs uzzinām par protected
piekļuves specifikatoru, pārliecinieties, vai zināt par mantojumu C ++.
protected
Atslēgvārds tiek izmantots, lai izveidotu aizsargātus biedri (dati un funkcijas).- Aizsargātajiem dalībniekiem var piekļūt klases ietvaros un no atvasinātās klases.
3. piemērs: C ++ aizsargāts piekļuves specifikators
#include using namespace std; // declare parent class class Sample ( // protected elements protected: int age; ); // declare child class class SampleChild : public Sample ( public: void displayAge(int a) ( age = a; cout << "Age = " << age << endl; ) ); int main() ( int ageInput; // declare object of child class SampleChild child; cout <> ageInput; // call child class function // pass ageInput as argument child.displayAge(ageInput); return 0; )
Izeja:
Ievadiet savu vecumu: 20 Vecums = 20
Šeit ChildSample
ir iedzimta klase, kas iegūta no Sample
. Mainīgais vecums tiek deklarēts Sample
ar protected
atslēgvārdu.
Tas nozīmē, ka ChildSample
var piekļūt vecumam, jo tā Sample
ir tā vecāku klase.
Mēs to redzam, jo mums ir piešķirta vecuma vērtība, ChildSample
lai arī vecums ir deklarēts Sample
klasē.
Kopsavilkums: publisks, privāts un aizsargāts
public
elementiem var piekļūt visas citas klases un funkcijas.private
elementiem nevar piekļūt ārpus klases, kurā tie ir deklarēti, izņemotfriend
klases un funkcijas.protected
elementi ir tādi paši kāprivate
, izņemot to, ka tiem var piekļūt ar atvasinātām klasēm.
Specifikatori | Tā pati klase | Atvasinātā klase | Ārpus klases |
---|---|---|---|
public | Jā | Jā | Jā |
private | Jā | Nē | Nē |
protected | Jā | Jā | Nē |
Piezīme: Pēc noklusējuma klases locekļi C ++ ir private
, ja vien nav norādīts citādi.