Piekļuves modifikatori ir īpaši atslēgvārdi valodā C++, kas kontrolē klases dalībnieku (datu un funkciju) redzamību.
Tie palīdz ieviest datu slēpšanu, ierobežojot vai atļaujot piekļuvi noteiktām klases daļām.
gimp saglabāšana kā jpeg
Apspriedīsim to pa vienam
1. Publiskais precizētājs
Publiskais precizētājs padara klases dalībniekus (mainīgos un funkcijas) pieejamus no jebkuras vietas - klasē ārpus klases vai pat citiem failiem.
2. Privāts norādītājs
Privātais specifikators padara klases dalībniekus pieejamus tikai pašā klasē (galvenokārt dalībnieku metodes) un galvenokārt tiek izmantots, lai paslēptu datus no ārpuses, lai mēs vēlāk varētu veikt izmaiņas iekšēji, nemainot tās lietotāju kodu. Pēc noklusējuma visi klases dalībnieki programmā C++ ir privāti, ja nav minēts neviens precizētājs.
CPP#include using namespace std; class Employee { private: // salary and empId cannot be accessed // from outside the Class double salary; int empID; public: string name; // Name can be accessed anywhere Employee(string n double s int id) { name = n; salary = s; empID = id; } }; int main() { Employee emp('Fedrick' 50000 101); cout << 'Name: ' << emp.name << endl; return 0; }
Izvade
Name: Fedrick
Kas notiek, ja mēģināsim piekļūt privātajiem dalībniekiem?
Kods rada kompilatora kļūdu, kā redzams zemāk.
C++#include using namespace std; class Employee { private: double salary; int empID; public: string name; // Constructor Employee(string n double s int id) { name = n; salary = s; empID = id; } }; int main() { Employee emp('Fedrick' 50000 101); cout << emp.salary << endl; return 0; }
Izvade
compilation error
prog.cpp: In function ‘int main()’:
prog.cpp:22:17: error: ‘double Employee::salary’ is private within this context
cout << emp.salary << endl;
^~~~~~
prog.cpp:6:12: note: declared private here
double salary;
^~~~~~
3. Aizsargāts precizētājs
- Aizsargātais specifikators padara dalībniekus pieejamus pašā klasē un tajā atvasināts (bērnu) klasēm, bet ne veido ārpus koda.
- To galvenokārt izmanto mantojumā, ļaujot bērnu klasēm atkārtoti izmantot vai modificēt datus un funkcijas, vienlaikus paturot tos paslēptus no ārpasaules.
#include using namespace std; class Employee { private: double salary; protected: int empID; public: string name; Employee(string n double s int id) { name = n; salary = s; empID = id; } }; // Derived class (inherits from Employee) class Manager : public Employee { public: Manager(string n double s int id) : Employee(n s id) {} void showDetails() { cout << 'Manager Name: ' << name << endl; cout << 'Manager ID: ' << empID << endl; } }; int main() { Employee emp('Fedrick' 50000 101); cout << 'Employee Name: ' << emp.name << endl; Manager m('Rohit' 70000 102); m.showDetails(); return 0; }
Izvade
Employee Name: Fedrick Manager Name: Rohit Manager ID: 102
Izveidojiet viktorīnuPiezīme : šī piekļuve, izmantojot mantojumu, var mainīt atvasinātās klases bāzes klases elementu piekļuves modifikatoru atkarībā no mantojuma veids .
java virknes vērtība