Для простых типов данных в классах, полностью видимых для клиентов класса, нет никакой разницы, поскольку вам нужно перекомпилировать клиент всякий раз, когда изменяется определение класса.
Основная причина создания средства доступа, а не непосредственного использования элемента, состоит в том, чтобы позволить реализации впоследствии удалить элемент данных и при этом поддерживать интерфейс совместимым; если интерфейс, содержащий метод доступа, не изменяется, то результат, как правило, является двоично-совместимым, в противном случае он совместим с источником. Наличие аксессора во встроенном состоянии означает его определение как части изменяемого интерфейса, так что вы всегда можете быть только совместимым с источником.
Другой причиной наличия метода доступа является граница DLL: если ваш метод доступа должен вызывать другую функцию, и вы разрешаете ее встраивать, то символ этой функции также необходимо экспортировать в клиент.
В зависимости от сложности проекта может быть полезно определить интерфейс для вашего кода в качестве абстрактного класса, который позволяет вам изменять реализацию в соответствии с вашими пожеланиями, чтобы клиент никогда не видел изменения; в этом случае средства доступа определяются как абстрактные в классе интерфейса, и клиенты никогда не могут их встроить.