Streams are flows of data. C++ abstracts the input and delivery (output, via screen, file, or elsewhere) of data with streams. As streams are objects, they each come with methods for manipulation.
Common types include:
All streams don’t have copy constructors — so for any operator overloading we do, we must return by reference. This is especially important for the <<
operator.
IO streams rely on class inheritance.