std::string Interface & Utilities Overview
std::string Interface Overview
Function Parameters & Return Values Parameters & Return Values
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.