Почему 25? Хорошо, за исключением фактора преувеличения (около 2,5). Я просто не знаю, в какой момент мне понадобится доступ к этой одной переменной в будущем.
Вы понимаете, что это означает, что вы действительно не очень продумали свой дизайн. Вместо того, чтобы искать способы добавить свойства в C ++ (они не нужны). Должен ли я называть их «проперду», чтобы объяснить степень моей неприязни к ним?
Вам следует потратить время на создание дизайна для вашего класса, чтобы вы знали, какие части должны быть видны пользователю класса (и, следовательно, нужна какая-то форма получения), какие части могут потребоваться обновить (и, следовательно, какая-то форма действия метод будет необходимо) и которые действительно являются внутренними. Заметьте, я ничего не сказал о сеттерах. Сеттеры - это ленивые конструкции, которые позволяют вам не планировать свой класс. Методы должны делать вещи. Под вещами, которые я имею в виду, должна работать настоящая работа, а не просто обновлять какое-то число. Если что-то просто число, сделайте это публичным. Если могут быть побочные эффекты, создайте метод, который даст вам подсказку о том, что делается (как изменение значения, так и побочный эффект). Если вы не знаете, может ли быть побочный эффект, вернитесь к таблице параметров и узнайте.
Я понимаю, что это идет вразрез с «практическим правилом», согласно которому данные следует инкапсулировать в частном порядке с помощью методов получения и установки, чтобы в случае изменения структуры класса пользователи класса были защищены от этих изменений. Ну, к черту это. Сделайте это правильно с первого раза и тратьте меньше времени на суету об этом позже. Мой подход заключается в том, чтобы предоставить классу доступ пользователей к НИЧЕМУ, но к небольшому набору методов, и затем, если вам важно разрешить им доступ к некоторым частным значениям позже, вы можете добавить getter () позже. Когда я сказал «просто сделайте это публичным», следует понимать, что это означает «после исчерпывающего рассмотрения я знаю, что это абсолютно безопасно сделать публичным, потому что я полностью и полностью разработал свой класс с учетом всех вариантов использования».
Хорошо, теперь давайте ответим на этот ответ, потому что он отвечает на суть вопроса, а не на букву вопроса. Я ожидаю этого.