Возможный дубликат:
Зачем использовать геттеры и сеттеры?
Мне кажется, что создавать методы доступа и мутатора, как правило, очень сложно, особенно при работе с очень простыми атрибутами. Зачем мне их использовать?
Ответ в основном зависит от того, для чего вы пишете код и насколько вы доверяете себе, работая в одиночку:
friend
директива, которая позволяет инкапсуляцию мелких частиц без необходимости иметь сеттеры и геттеры (даже если она поощряет сцепление, поэтому здесь есть две разные школы мышления)Я не могу говорить о бремени синтаксиса C ++, но в общих терминах объектно-ориентированного подхода вы должны указывать методы получения и установки, потому что другие классы не имеют никакого дела, зная, как вы храните свое внутреннее состояние, в том числе какие свойства хранятся напрямую, которые вычисляются на основе другого состояния. и которые переданы дальше другим объектам. Заключение контракта с широким миром о том, как класс будет хранить состояние, ограничит коррективы, которые вы можете внести в будущем, часто препятствуя оптимизации и нарушая ваш код, поскольку проблема, которую вы решаете, становится более нюансированной.