1. 程式人生 > 其它 >【C++ IO機制】1-標準輸入輸出

【C++ IO機制】1-標準輸入輸出

標準輸入輸出

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.