ostream
#include <iostream.h>
The ostream class provides the basic capability for sequential and random-access output. An ostream object has a streambuf-derived object attached, and the two classes work together; the ostream class does the formatting, and the streambuf class does the low-level buffered output.
You can use ostream objects for sequential disk output if you first construct an appropriate filebuf object. (The filebuf class is derived from streambuf.) More often, you will use the predefined stream objects cout, cerr, and clog (actually objects of class ostream_withassign), or you will use objects of classes ofstream (disk file streams) and ostrstream (string streams).
All of the ostream member functions write unformatted data; formatted output is handled by the insertion operators.
Derivation
It is not always necessary to derive from ostream to add functionality to a stream; consider deriving from streambuf instead, as illustrated in Deriving Your Own Stream Classes. The ofstream and ostrstream classes are examples of ostream-derived classes that construct member objects of predetermined derived streambuf classes. You can add manipulators without deriving a new class.
If you add new insertion operators for a derived ostream class, then the rules of C++ dictate that you must reimplement all the base class insertion operators. If, however, you reimplement the operators through inline equivalence, no extra code will be generated.
Construction/Destruction — Public Members
Constructs an ostream object that is attached to an existing streambuf object.
Destroys an ostream object.
Prefix/Suffix Functions — Public Members
Output prefix function, called prior to insertion operations to check for error conditions, and so forth.
Output suffix function, called after insertion operations; flushes the stream’s buffer if it is unit buffered.
Unformatted Output — Public Members
Inserts a single byte into the stream.
Inserts a series of bytes into the stream.
Other Functions — Public Members
Flushes the buffer associated with this stream.
Changes the stream’s put pointer.
Gets the value of the stream’s put pointer.
Operators — Public Members
Insertion operator for various types.
Manipulators
Inserts a newline sequence and flushes the buffer.
Inserts a null character to terminate a string.
Flushes the stream’s buffer.
See Also streambuf, ofstream, ostrstream, cout, cerr, clog
Example
class xstream : public ostream
{
public:
// Constructors, etc.
// ........
inline xstream& operator << ( char ch ) // insertion for char
{
return (xstream&)ostream::operator << ( ch );
}
// ........
// Insertions for other types
};