Пошаговое руководство по С++

С++ ГЛАВНАЯ Введение в С++ С++ Начать Синтаксис С++ Вывод С++ С++ Комментарии Переменные С++ Пользовательский ввод С++ Типы данных С++ Операторы С++ Строки С++ С++ Математика Логические значения С++ Условия С++ Переключатель С++ C++ пока цикл С++ для цикла С++ Перерыв/Продолжение Массивы С++ Ссылки на С++ Указатели С++

Функции С++

Функции С++ Параметры функции С++ Перегрузка функций C++

Классы С++

С++ ООП Классы/объекты С++ Методы класса С++ Конструкторы С++ Спецификаторы доступа C++ Инкапсуляция С++ Наследование С++ Полиморфизм С++ Файлы С++ Исключения С++

С++ Как

Добавить два числа

Примеры С++

Примеры С++ Компилятор С++ Упражнения по С++ Викторина по С++


Инкапсуляция С++


Инкапсуляция

Смысл инкапсуляции в том, чтобы убедиться, что «конфиденциальные» данные скрыты от пользователей. Для этого вы должны объявить переменные/атрибуты класса как private(нельзя получить доступ извне класса). Если вы хотите, чтобы другие читали или изменяли значение частного члена, вы можете предоставить общедоступные методы get и set .


Доступ к закрытым членам

Чтобы получить доступ к частному атрибуту, используйте общедоступные методы «get» и «set»:

Пример

#include <iostream>
using namespace std;

class Employee {
  private:
    // Private attribute
    int salary;

  public:
    // Setter
    void setSalary(int s) {
      salary = s;
    }
    // Getter
    int getSalary() {
      return salary;
    }
};

int main() {
  Employee myObj;
  myObj.setSalary(50000);
  cout << myObj.getSalary();
  return 0;
}

Объяснение примера

Атрибут salary, privateкоторые имеют ограниченный доступ.

Публичный setSalary()метод принимает параметр ( s) и присваивает его salaryатрибуту (salary = s).

Публичный getSalary()метод возвращает значение частного salaryатрибута.

Внутри main()мы создаем объект Employeeкласса. Теперь мы можем использовать этот setSalary()метод, чтобы установить значение частного атрибута в 50000. Затем мы вызываем getSalary()метод объекта, чтобы вернуть значение.


Почему инкапсуляция?

  • Хорошей практикой считается объявлять атрибуты вашего класса закрытыми (как можно чаще). Инкапсуляция обеспечивает лучший контроль над вашими данными, потому что вы (или другие) можете изменить одну часть кода, не затрагивая другие части.
  • Повышенная безопасность данных