1. 簡介
該頭文定義了與文件箱關聯的流類的4個模版:
- basic_filebuf
- basic_ifstream
- basic_ofstream
- basic_fstream
和8個類型:
- filebuf
- ifstream
- ofstream
- fstream
- wfilebuf
- wifstream
- wofstream
- wfstream
2. basic_filebuf模版
該模版繼承自basic_streambuf
,同時將輸入流與輸出流與文件相關聯,它的作用與basic_stringbuf是相似的。 因為繼承自可重用的基類,它自身只定義了有限的公有函數和虛函數(虛函數不再贅述)。
2.1 公有函數
- open : 打開文件並關聯。
- close : 關閉文件並取消關聯。
- is_open : 檢測先前是否順利打開了文件。
- operator =(移動語義) : 移動語義的賦值運算符。
- swap : 交換兩個對象內容。
2.2 全局模版函數
- swap : 基本上每個標准類都回提供swap的兩種形式:成員函數 和 全局模版。
3. 基於文件的流類模版
- basic_ifstream內部使用bsaic_filebuf來控制劉序列,它繼承自basic_istream。
- basic_ofstream內部使用bsaic_filebuf來控制劉序列,它繼承自basic_ostream。
- basic_fstream內部使用bsaic_filebuf來控制劉序列,它繼承自basic_iostream。
同樣是由於繼承可重用基類的緣故,這些類模版本身也都只定義了幾個公有函數。
3.1 公有函數
- open : 打開文件並關聯。
- close : 關閉文件並取消關聯。
- is_open : 檢測先前是否順利打開了文件。
- rdbuf : 返回內部的basic_stringbuf對象指針。
- operator = (移動語義)
- swap
3.2 全局模版函數
- swap
4 typedefs
typedef basic_ifstream< char > ifstream;
typedef basic_ofstream< char > ofstream;
typedef basic_fstream< char > fstream;
typedef basic_filebuf< char > filebuf;
typedef basic_ifstream< wchar_t > wifstream;
typedef basic_ofstream< wchar_t > wofstream;
typedef basic_fstream< wchar_t > wfstream;
typedef basic_filebuf< wchar_t > wfilebuf;