Having Getters for each member variable always seems fine and reasonable. It&#x27;s when you have getters that do &quot;magic&quot; that I feel a little.. unsure. Like if it&#x27;s taking a member and returning it in a different unit that seems kosher... But there is a fuzzy line where at some point the Getter is doing too much work to genuinely be a getter. It gives a false impression for the internal structure of the program. But conveying the const&#x27;ness is important as you describe (or semi-constness if you have caching)