我們從一開始就一直在利用C++的輸入輸出在做著各種練習(xí),輸入輸出是由iostream庫提供的,所以討論此標(biāo)準(zhǔn)庫是有必要的,它與C語言的stdio庫不同,它從一開始就是用多重繼承與虛擬繼承實現(xiàn)的面向?qū)ο蟮膶哟谓Y(jié)構(gòu),作為一個c++的標(biāo)準(zhǔn)庫組件提供給程序員使用。 iostream為內(nèi)置類型類型對象提供了輸入輸出支持,同時也支持文件的輸入輸出,類的設(shè)計者可以通過對iostream庫的擴(kuò)展,來支持自定義類型的輸入輸出操作。 為什么說要擴(kuò)展才能提供支持呢?我們來一個示例。 #include <stdio.h> 由于自定義類的特殊性,在上面的代碼中,無論你使用c風(fēng)格的輸入輸出,或者是c++的輸入輸出都不是不明確的一個表示,由于c語言沒有運算符重載機(jī)制,導(dǎo)致stdio庫的不可擴(kuò)充性,讓我們無法讓printf()和scanf()支持對自定義類對象的擴(kuò)充識別,而c++是可以通過運算符重載機(jī)制擴(kuò)充iostream庫的,使系統(tǒng)能能夠識別自定義類型,從而讓輸入輸出明確的知道他們該干什么,格式是什么。 我們所熟悉的輸入輸出操作分別是由istream(輸入流)和ostream(輸出流)這兩個類提供的,為了允許雙向的輸入/輸出,由istream和ostream派生出了iostream類。
|
|