Overloaded I/O Operator is friend, so it can access member variables