C ++ piekļuves modifikatori

Š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 Patientklases diagnostika tiek paslēpti, izmantojot privateatslēgvārdu, savukārt dalībnieku funkcijas tiek padarītas pieejamas, izmantojot publicatslēgvārdu.

C ++ piekļuves modifikatoru veidi

Programmā C ++ ir 3 piekļuves modifikatori:

  • public
  • private
  • protected

publiskās piekļuves modifikators

  • publicAtslē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 publicmainīgs vecums un publicfunkcija displayAge().

Gadā main()mēs esam izveidojuši objektu, kura Samplenosaukums ir obj1. Pēc tam mēs tieši piekļūstam publiskajiem elementiem, izmantojot kodus obj.ageun obj.displayAge().

privāts piekļuves pārveidotājs

  • privateAtslē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 protectedpiekļuves specifikatoru, pārliecinieties, vai zināt par mantojumu C ++.

  • protectedAtslē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 ChildSampleir iedzimta klase, kas iegūta no Sample. Mainīgais vecums tiek deklarēts Samplear protectedatslēgvārdu.

Tas nozīmē, ka ChildSamplevar piekļūt vecumam, jo ​​tā Sampleir tā vecāku klase.

Mēs to redzam, jo ​​mums ir piešķirta vecuma vērtība, ChildSamplelai arī vecums ir deklarēts Sampleklasē.

Kopsavilkums: publisks, privāts un aizsargāts

  • public elementiem var piekļūt visas citas klases un funkcijas.
  • privateelementiem nevar piekļūt ārpus klases, kurā tie ir deklarēti, izņemot friendklases un funkcijas.
  • protectedelementi 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
private
protected

Piezīme: Pēc noklusējuma klases locekļi C ++ ir private, ja vien nav norādīts citādi.

Interesanti raksti...