Digression: Value vs. Reference Parameters
Value parameters (Object foo)
- copies parameter
- no side effects
Reference parameters (Object & foo)
- shares parameter
- can affect actual value
- use when the value needs to be changed
Const reference parameters (const Object & foo)
- shares parameter
- cannot affect actual value
- use when the value is too intricate for pass-by-value