Design Study: Function Interfaces
Function Interfaces

Slides

This cheat sheet illustrates when/where one should use references, const, pass-by-value, etc. for some common (but of course not all) cases.

You should of course avoid direct access to class member variables, because you lose control over the interplay between this one member's state and the state of the other class members.