РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
676 of 815 menu

Ключевое слово private

Ключевое слово private используется в теле класса для указания того, что следующие за ним члены класса являются закрытыми. К закрытым членам можно обращаться только из методов самого класса или из дружественных функций и классов. Снаружи класса прямой доступ к таким членам запрещен. Это один из ключевых механизмов инкапсуляции в C++.

Если в классе не указан ни один спецификатор доступа, то по умолчанию все его члены являются закрытыми. Ключевое слово private может использоваться как для полей, так и для методов класса.

Синтаксис

class ClassName { private: // закрытые поля и методы public: // открытые поля и методы };

Пример

Давайте создадим класс Counter, в котором счетчик будет закрытым полем, а доступ к нему будет осуществляться через открытые методы:

#include <iostream> using namespace std; class Counter { private: int count; public: Counter() : count(0) {} void increment() { count++; } int getCount() { return count; } }; int main() { Counter c; c.increment(); c.increment(); c.increment(); cout << c.getCount() << endl; return 0; }

Результат выполнения кода:

3

Пример

Давайте попробуем обратиться к закрытому полю напрямую из функции main. Такой код не скомпилируется, потому что поле count является закрытым:

#include <iostream> using namespace std; class Counter { private: int count; public: Counter() : count(0) {} }; int main() { Counter c; // c.count = 5; // ошибка: count is private return 0; }

Компилятор выдаст ошибку, так как прямой доступ к закрытому полю count извне класса запрещен.

Пример

Давайте создадим класс BankAccount, в котором баланс хранится в закрытом поле, а пополнение и снятие средств выполняются через открытые методы с проверками:

#include <iostream> using namespace std; class BankAccount { private: int balance; public: BankAccount(int initial) : balance(initial) {} void deposit(int amount) { if (amount > 0) { balance += amount; } } bool withdraw(int amount) { if (amount > 0 && amount <= balance) { balance -= amount; return true; } return false; } int getBalance() { return balance; } }; int main() { BankAccount acc(100); acc.deposit(50); bool res = acc.withdraw(30); cout << res << endl; cout << acc.getBalance() << endl; return 0; }

Результат выполнения кода:

1 120

Смотрите также

  • ключевое слово public,
    которое открывает доступ к членам класса
  • ключевое слово protected,
    которое делает члены доступными наследникам
  • ключевое слово friend,
    которое дает доступ к закрытым членам класса
  • ключевое слово struct,
    у которого члены по умолчанию открытые
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить