НАЙКРАЩИЙ САЙТ ДЛЯ ВЕБ-РОЗРОБНИКІВ

C++ Підручник

C++ Головна C++ Інтро C++ Початок роботи C++ Синтаксис C++ Виведення C++ Коментарі C++ Змінні C++ Введення користувача C++ Типи даних C++ Оператори C++ Рядки C++ Математика C++ Булеві C++ Умови C++ Switch C++ Цикл While C++ Цикл For C++ Break/Continue C++ Масиви C++ Структури C++ Enums C++ Довідники C++ Вказівники

C++ Функції

C++ Функції C++ Параметри функції C++ Перевантаження функцій C++ Область застосування C++ Рекурсія

C++ Класи

C++ ООП C++ Класи/Об’єкти C++ Методи класу C++ Конструктори C++ Специфікатори доступу C++ Інкапсуляція C++ Успадкування C++ Поліморфізм C++ Файли C++ Винятки C++ Дата

C++ Як зробити

Скласти два числа Випадкові числа

C++ Довідник

C++ Довідник C++ Ключові слова C++ <iostream> C++ <fstream> C++ <cmath> C++ <string> C++ <cstring> C++ <ctime>

C++ Приклади

C++ Приклади C++ Компілятор C++ Вправи C++ Вікторина C++ Сертифікат

Мова програмування C++. Уроки W3Schools для початківців українською мовою

En Es De

C++ Специфікатори доступу


Специфікатори доступу

Тепер ви добре знайомі з ключовим словом public, яке з’являється у всіх наших прикладах класів:

Приклад

class MyClass {  // Клас
  public:        // Специфікатор доступу
    // Члени класу йдуть тут
};
Спробуйте самі »

Ключове слово public є специфікатором доступу. Специфікатори доступу визначають, як можна отримати доступ до членів (атрибутів і методів) класу. У наведеному вище прикладі члени є public, що означає, що до них можна отримати доступ і змінити їх поза кодом.

А що, якщо ми хочемо, щоб члени були приватними та прихованими від зовнішнього світу?

У C++ є три специфікатори доступу:

  • public - члени доступні поза класом
  • private - до членів неможливо отримати доступ (або переглянути) поза класом
  • protected - до членів неможливо отримати доступ поза класом, однак доступ до них можна отримати в успадкованих класах. Ви дізнаєтеся більше про Наслідування пізніше в цьому підручнику.

У наступному прикладі ми демонструємо різницю між public і private членами:

Приклад

class MyClass {
  public:    // Специфікатор публічного доступу
    int x;   // Публічний атрибут
  private:   // Специфікатор приватного доступу
    int y;   // Приватний атрибут
};

int main() {
  MyClass myObj;
  myObj.x = 25;  // Дозволено (public)
  myObj.y = 50;  // Заборонено (privat)
  return 0;
}

Якщо ви намагаєтеся отримати доступ до приватного учасника, виникає помилка:

error: y is private
Спробуйте самі »

Примітка. Можна отримати доступ до приватних членів класу за допомогою відкритого методу всередині того самого класу. Перегляньте наступний розділ (Інкапсуляція), щоб дізнатися, як це зробити.

Порада: Вважається хорошою практикою оголошувати атрибути класу приватними (якомога частіше). Це зменшить можливість того, що ви (чи інші) зіпсуєте код. Це також головний інгредієнт концепції Інкапсуляції, про яку ви дізнаєтеся більше в наступному розділі.

Примітка: За умовчанням усі члени класу є private, якщо ви не вкажете специфікатор доступу:

Приклад

class MyClass {
  int x;   // Приватний атрибут
  int y;   // Приватний атрибут
};


Коментарі