Какая типичная ошибка при работе с инкапсуляция и как ее избежать?
Что хотят услышать интервьюеры:
Частая ошибка: делать иерархии ради переиспользования кода, не иметь virtual destructor в базовом классе или смешивать владение с полиморфизмом.
Ответ:
Как избежать: явно определить контракт: кто владеет объектом, кто освобождает ресурс, что происходит при ошибке, какие инварианты должны сохраняться.
На собеседовании: полезно назвать симптом — segfault, leak, UB, data race, deadlock, ABI break или деградация производительности.
class Account {
private: int balance_;
public: void deposit(int);
}
;