У цьому підручнику ми дізнаємося про модифікатори доступу для класів C ++ за допомогою прикладів. Модифікатори доступу на C ++ є загальнодоступними, приватними та захищеними.
Однією з основних особливостей об’єктно-орієнтованих мов програмування, таких як С ++, є приховування даних .
Приховування даних відноситься до обмеження доступу членів даних класу. Це робиться для того, щоб інші функції та класи не втручались у дані класу.
Однак важливо також зробити доступними деякі функції членів та дані членів, щоб прихованими даними можна було маніпулювати опосередковано.
Модифікатори доступу на C ++ дозволяють нам визначити, які члени класу доступні для інших класів та функцій, а які ні.
Наприклад,
class Patient ( private: int patientNumber; string diagnosis; public: void billing() ( // code ) void makeAppointment() ( // code ) );
Тут змінні PatientNumber та діагностика Patientкласу приховані за допомогою privateключового слова, тоді як функції-члени робляться доступними за допомогою publicключового слова.
Типи модифікаторів доступу C ++
У C ++ є 3 модифікатори доступу:
publicprivateprotected
модифікатор загальнодоступного доступу
publicКлючове слово використовується для створення відкритих членів (дані і функції).- Громадські члени мають доступ до будь-якої частини програми.
Приклад 1: Модифікатор загальнодоступного доступу C ++
#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; )
Вихід:
Введіть свій вік: 20 Вік = 20
У цій програмі ми створили клас з іменем Sample, який містить publicзмінний вік та publicфункцію displayAge().
У main(), ми створили об'єкт Sampleкласу на ім'я obj1. Потім ми отримуємо доступ до відкритих елементів безпосередньо, використовуючи коди obj.ageта obj.displayAge().
приватний модифікатор доступу
privateКлючове слово використовується для створення приватних користувачів (дані і функції).- До приватних учасників можна отримати доступ лише з класу.
- Однак класи друзів та функції друзів можуть отримати доступ до приватних членів.
Приклад 2: Специфікатор приватного доступу C ++
#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; )
Вихід:
Введіть свій вік: 20 Вік = 20
У main(), об'єкт obj1 не може безпосередньо отримати доступ до змінної класу age.
// error cin>> obj1.age;
Ми можемо лише побічно маніпулювати віком за допомогою публічної функції displayAge(), оскільки ця функція призначає вік аргументу, переданому в неї, тобто параметру функції int a.
захищений модифікатор доступу
Перш ніж ми дізнаємося про protectedспецифікатор доступу, переконайтеся, що ви знаєте про успадкування в C ++.
protectedКлючове слово використовується для створення захищених членів (дані і функції).- До захищених членів можна отримати доступ як у класі, так і з похідного класу.
Приклад 3: Захищений специфікатор доступу C ++
#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; )
Вихід:
Введіть свій вік: 20 Вік = 20
Тут ChildSampleє успадкований клас, який походить від Sample. Мінлива вік оголошена в Sampleс protectedключовим словом.
Це означає, що він ChildSampleможе отримати доступ до віку, оскільки Sampleє його батьківським класом.
Ми бачимо це, оскільки ми призначили значення віку, ChildSampleнавіть якщо вік оголошений у Sampleкласі.
Короткий зміст: державний, приватний та захищений
publicелементи можуть бути доступними для всіх інших класів та функцій.privateЕлементи не можуть бути доступні поза класом, в якому вони оголошені, за виняткомfriendкласів та функцій.protectedелементи подібні доprivate, за винятком того, що до них можуть отримати доступ похідні класи.
| Специфікатори | Той самий клас | Похідний клас | Поза класом |
|---|---|---|---|
public | Так | Так | Так |
private | Так | Ні | Ні |
protected | Так | Так | Ні |
Примітка: За замовчуванням члени класу в C ++ є private, якщо не вказано інше.








