Здравствуйте, jazzer, Вы писали:
J>Здравствуйте, R1K0, Вы писали:
RK>>Может кто-то что-то выскажет по этому поводу. Потому как реально никаких убедительных доводов против открытых атрибутов ни в одной книге не нашел.
J>Потому что ты не можешь гарантировать инварианты, если даешь прямой доступ. J>Но если никаких инвариантов нет и тебя устраивает любое сочетание любых значений, то не вижу причин городить огород с геттерами-сеттерами (пример — std::pair).
J>Один довод в пользу геттеров-сеттеров — облегчение отладки, чтоб можно было брыкпонт на сеттер поставить, или там в лог написать чего-нть. J>Еще довод — позже инварианты могут добавиться, и их гораздо проще добавлять в уже имеющийся метод, через переделывать все (хотя это тоже не смертельно — просто заменить на метод и пройтись по всем местам, где перестало компилироваться, а частота подобных метаморфоз кода все-таки невелика, чтоб платить за это неуклюжим синтаксисом).
добавлю только то, что использование таких функций ни чем не хуже, компилятор их всё равно заинлайнит (хотя можно и явно указать). Так что результат будет одинаковым, а на этапе разработки лучше с обёрткой.