(C++) Not sure what the problem wants me to do.

  • Context: Comp Sci 
  • Thread starter Thread starter cpponyou
  • Start date Start date
Join the discussion
Registration is free. Ask a follow-up in this thread, or start your own.
2 replies · 1K views
cpponyou
Messages
1
Reaction score
0
I have this HW problem, but I cannot figure out what it wants me to do. I don't want anyone to solve it for me, just point me in the right direction.

Suppose that a class hierarchy has a virtual method print
Code:
class C {
virtual void print( ostream& ) const;
};

that outputs C's members to the stream ostream. Write one overload of << so that the statement

Code:
out << p;

outputs p's members to the stream out, where p is any object that belongs to a class in the hierarchy.

What I don't understand is the out << p bit. Am I supposed to be able to do

Code:
out << p;

in my main() and have the overload call p.print() ?
 
Physics news on Phys.org
That is exactly what you are supposed to do.

You should probably make your overloaded function obey the semantics of the << operator as used with streams so that given two such objects p and q the following works:
Code:
out << "Members of p:\n" << p << "\nMembers of q:\n" << q;
 
Last edited: