Разбираем, зачем в C++ нужны секции
public/
private, как инкапсуляция делает объект «неубиваемым», и почему лучше держать
public-API маленьким. На примере мини‑проекта
TaskTracker покажем, как прятать состояние (например,
std::vector) за осмысленными методами (
rename(),
mark_done()), не «протекать» наружу через ссылки
T
&, и держать проверки внутри класса.