В чём удобство?
Раньше сам задумывался, не понимал что хорошего в классах?А потом понял, что лень это двигатель прогресса.В том смысле что ты однажды написал класс в хэдере и пользуйся им на здоровье.
В чём же преимущество ООП?На конкретном примере.
Допустим, есть две фабрики.Обе выпускают машины, но подход разный.Одни используют функции, а другие классы.У тех кто используют функции проблемы, потому что заказов много, а чтобы их сделать нужно вызвать много функций.А у тех кто используют классы, их нет, поскольку они один раз написали класс и теперь всё время его вызывают простым auto Renault(Logan);
.
Также с наследованием и полиморфизмом
Вышли две новые машины, которые унаследовали что-то от старой и этим фабрикам пошли заказы.Первые начали писать тонны функций, а вторые добавили в базовый класс к унаследованным функциям приставку virtual
Вот тебе польза наследования и полиморфизма.
Ну с инкапсуляцией легко, хотя достичь её непросто.Нужно просто не вдаваться в детали.Как, с кнопками громкости в пульте.Ты можешь только переключать на "Громче" или "Тише", но ты не можешь выбрать определённый уровень громкости, ведь ты рано или поздно доберёшься до него.Инкапсуляция скрыла от тебя детали.И у классовиков тоже инкапсуляция.Они один раз написали класс и он будет работать, и им не важно как, главное работает и они получают что хотят.
P.S.
Я много бурды наговорил, но это моё понимание ООП