See this page as a slide show
CS253 IO Hierarchy
I/O Class Hierarchy
┌─────┐
│ ios │
└─────┘
△
│
┌────────────────┴────────────────┐
│ │
┌────┴────┐ ┌────┴────┐
│ istream │ │ ostream │
└─────────┘ └─────────┘
△ △
│ │
┌──────┴───────┐ ┌──────┴───────┐
│ │ │ │
┌─────┴────┐ ┌───────┴───────┐ ┌───────┴───────┐ ┌────┴─────┐
│ ifstream │ │ istringstream │ │ ostringstream │ │ ofstream │
└──────────┘ └───────────────┘ └───────────────┘ └──────────┘
More
┌─────┐
│ ios │
└─────┘
△
│
┌────────────────┴────────────────┐
│ │
┌────┴────┐ ┌────┴────┐
│ istream │ │ ostream │
└─────────┘ └─────────┘
△ △
│ │
┌──────┴───────┐ ┌──────┴───────┐
│ │ │ │
┌─────┴────┐ ┌───────┴───────┐ ┌───────┴───────┐ ┌────┴─────┐
│ ifstream │ │ istringstream │ │ ostringstream │ │ ofstream │
└──────────┘ └───────────────┘ └───────────────┘ └──────────┘
ios
(input/output stream) is the base class
istream
and ostream
are subclasses of ios
- An
istream
is-a ios
- An
ostream
is-a ios
ifstream
and istringstream
are subclasses of istream
- An
ifstream
is-a istream
- An
istringstream
is-a istream
ofstream
and ostringstream
are subclasses of ostream
- An
ofstream
is-a ostream
- An
ostringstream
is-a ostream
Methods & Operator Overloading
┌─────┐
│ ios │
└─────┘
△
│
┌────────────────┴────────────────┐
│ │
┌────┴────┐ ┌────┴────┐
│ istream │ │ ostream │
└─────────┘ └─────────┘
△ △
│ │
┌──────┴───────┐ ┌──────┴───────┐
│ │ │ │
┌─────┴────┐ ┌───────┴───────┐ ┌───────┴───────┐ ┌────┴─────┐
│ ifstream │ │ istringstream │ │ ostringstream │ │ ofstream │
└──────────┘ └───────────────┘ └───────────────┘ └──────────┘
- Which class is
operator<<
part of?
- Which class is
operator>>
part of?
- Which class is
.open()
part of?
- Which class is
.get()
part of?