Инкапсуляция — это фундаментальный принцип объектно-ориентированного программирования, который заключается в том, чтобы объединить данные и методы вместе, скрывая при этом детали внутренней реализации от внешнего мира.
Главная задача — изолировать внутреннюю сложность, контролируя доступ к внутреннему состоянию объекта и его операциям. Это защищает целостность данных объекта и гарантирует, что они могут быть изменены только валидными, контролируемыми способами.
Представь бизнес-объект, который считает чистый доход. Клиентский компонент, запрашивающий это значение, не должен знать:
Клиент просто вызывает публичный метод и получает результат.
Инкапсуляция достигается с помощью модификаторов доступа:
private — данные и методы доступны только внутри классаprotected — доступны классу и его наследникамpublic — доступны отовсюдуclass Revenue {
private:
double expenses;
double income;
public:
double getNetRevenue() {
return income - expenses;
}
};
Инкапсуляция крайне важна для написания надёжных и легко поддерживаемых приложений на C++, так как устанавливает чёткие границы между внутренним устройством объекта и его внешним интерфейсом.
В C++ модификатор доступа protected позволяет получать доступ к членам данных из производных классов, делая его более строгим, чем private, но менее строгим, чем public.
Новый — ещё не проверен сообществом
Вы