The c++ I/O classes illustrate the importance of abstraction in designing and implementing data types. Programmers can use i stream and stream objects without having to concern themselves with the messy implementation details of how input and output actually occur.