Some basic terminology
name -- denotes an object, a function, set of functions, enumerator, type, class member, template, a value or a label
- introduced by a declaration,
- used within a scope, and
- has a type which determines its use.
object -- region of storage
- a named object has a storage class that determines its lifetime, and
- the meaning of the values found in an object is determined by the type of the expression used to access it