default values for default constructor
and operator[], operator+ is overloaded
[] can be used both in lhs and rhs.
+ is implemented as a friend function so that
it is with two parameters. lhs is non-mutable.
return type is object and temp object is returned.