1. 继承关系
basic_ostream<CharT, Traits> 输出流
basic_istream<CharT, Traits> 输入流
basic_iostream<CharT, Traits> 输入输出流
上面的三个类是抽象类,所有的实现都继承自它们三个。
Q1
: 为什么在实际使用中通常使用的是std::ofstream而不是std::basic_ofstream。
answer:
两者表示相同的意思,只是std::ofstream是别名。
/// Class for @c char output file streams.
typedef basic_ofstream ofstream;
Q2
: 模板类有两个模板类型,为什么实际定义中只指定了一个char
answer:
在模板类申明中指定了默认参数。
template<typename _CharT, typename _Traits = char_traits<_CharT> > class basic_ofstream;
2. 具体使用
读文件: