Member functions can access any other members (functions or data).
Non-members (i.e. clients) can access only public members.
Overload resolution happens before access checking.