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