【C++ IO機制】1-標準輸入輸出
阿新 • • 發佈:2021-12-27
標準輸入輸出
1. cin原型:
template <class CharT, class Traits = std::char_traits<CharT>> class basic_istream : virtual public std::basic_ios<CharT, Traits>
2. cout原型:
template <class CharT, class Traits = std::char_traits<CharT>> class basic_ostream : virtual public std::basic_ios<CharT, Traits>
3. cerrr原型:
template <class CharT, class Traits = std::char_traits<CharT>> class basic_ostream : virtual public std::basic_ios<CharT, Traits>
【注意】
extern istream cin; // Linked to standard input extern ostream cout; // Linked to standard output extern ostream cerr; //Linked to standard error (unbuffered)
iostream 現在是模板化的,同時支援窄字元和寬字元。下圖是現在的繼承體系,同時畫出了 fstreams 和 stringstreams。圖中方框的第二行是模板的具現化型別,也就是我們程式碼裡常用的具體型別(通過 typedef 定義)。
這個繼承體系糅合了面向物件與泛型程式設計,但可惜它兩方面都不討好。
再進一步加深瞭解,發現還有一個平行的 streambuf 繼承體系,fstream 和 stringstream 的不同之處主要就在於它們使用了不同的 streambuf 具體型別。
參考資料
1.