Might consider using friend classes and overriding "<<" the ostream operator.