std::basic_istream<char, std::char_traits<char> >
and cout boils down to:
std::basic_ostream<char, std::char_traits<char> >
The longer answer shows the connection by following some standard typedefs and templates. First,
cin and cout have type std::istream and std:: ostream, respectively. In turn, those are
typdef'd as std::basic_istream<char> and std::basic_ostream<char>. Finally, after
accounting for the default template arguments, we get the above.
Note: If you are using a prestandard implementation of the iostreams subsystem, you might still see
intermediate classes, such as istream_with_assign. Those classes do not appear in the standard.