由于ifstream和istringstream类继承了iostream,因此可以用ifstream或者istringstream来取代istream的类型实现,可以用ofstream或者ostringstream来取代ostream的类型实现。
iostream是由istream和ostream派生而来的,这意味着iostream对象共享了它的两个父类的接口。
可以使用iostream类型在同一个流上实现输入和输出操作。
对fstream和stringstream也是同样的道理。
对IO类型使用继承还有一个重要的含义:如果函数有基类类型的引用形参时,可以给函数传递其派生类类型的对象。
所以:
对ostream&进行操作时,可以使用ofstream或者ostringstream对象来调用。
对istream&进行操作时,可以使用ifstream或者istringstream对象来调用。