EasyООП
Что такое инкапсуляция и зачем она нужна?
1Постановка
Разберём, что от вас хотят в этом вопросе и как к нему подступиться на собеседовании.
2Решение
Инкапсуляция — сокрытие внутренних данных и реализации, предоставление публичного интерфейса. В C++ через модификаторы доступа: private (только класс), protected (класс и наследники), public (все).
class Account {
double balance_; // private: не даём создать невалидное состояние
public:
void deposit(double amount) {
if (amount > 0) balance_ += amount; // контроль инварианта
}
double balance() const { return balance_; }
};Преимущества: класс контролирует инварианты, можно менять реализацию не ломая клиентов, упрощает использование, защита от случайных изменений. Геттеры/сеттеры «в лоб» — не инкапсуляция; настоящая выражает операции над объектом.
3Как отвечать
- Сначала уточните условия и ограничения, покажите аналитическое мышление.
- Рассуждайте вслух — интервьюеру важен ход мысли, а не только финальный ответ.
- Оцените сложность по времени и памяти (Big-O), если это алгоритмический вопрос.
💡
На реальном собеседовании Alffert подскажет развёрнутый ответ в реальном времени.