If the implementation of an I/O operator requires access to the private data of an object, the standard
operators should delegate the work to auxiliary member functions. This technique also allows
polymorphic read and write functions, which might look as follows