Там, где у меня есть опция, я лично всегда предпочитаю методы получения (и свойства стиля C #), а не прямой доступ к переменным memeber, будь то внутри одного класса или снаружи вне класса по двум различным причинам:
1- Они хороши при отладке «точек доступа» (например, если вам приходилось следить за тем, кто обращается к переменной-члену, и когда тогда вы просто помещаете печать или точку останова в геттер вместо того, чтобы выполнять поиск в вашем коде )
2- Если в будущем вам потребуется изменить способ определения и / или использования переменной-члена, то получатели дают вам одну точку фокусировки / изменения, которую можно изменить, чтобы отразить изменения в определениях и значениях фактического переменная поддерживающего члена
Обратите внимание, что то же самое относится и к сеттерам.
В C ++ это не такая распространенная практика, но я не помню, когда в последний раз я не использовал getter / setters для чего-либо!
Надеюсь, это поможет!