сеттеры если можно просто сделать поле публичным, или возвращать ссылку?
Если есть какая-то дополнительная логика как правило
инкапсуляция
Чтоб нельзя было как угодно поля менять, ломая инварианты
Я считаю что чрезмерная инкапсуляция всего порой только усложняет. Посмотрите на языки где вообще нет приватных полей, и ничего, живут.
Лучше чрезмерная, чем никакой, особенно если это библиотечный код
А некоторые языки вообще функциональные. Не перенимать же у них эту парадигму когда пишешь на C++
у абстракции "2D вектор" действительно не надо делать поля приватными. А у абстракции "Массив" ещё как надо, иначе можно будет менять размер в обход непосредственно массива
Напомните какие геттеры/сеттеры есть в stl
std::string::size()
С этим я ок, мне скорее не нравится соглашение писать везде getVariable setVariable
Ну это вкусовщина
Ну вот да, надо по ситуации смотреть, а не тупо все всегда делать максимально приватным
reserve / capacity resize / size
Обсуждают сегодня