這個(gè)體系中的class職責(zé)如下:
*ios_base:定義stream classes的所有“與字符類型以及相應(yīng)的字符特性(traits)無(wú)關(guān)”的屬性,主要包含狀態(tài)和格式標(biāo)志等組件和函數(shù)。
*basic_ios<>:定義“與字符類型以及相應(yīng)的字符特性(traits)相關(guān)”的stream classes共同屬性,其中包括stream所用的緩沖器。
*basic_istream<> basic_ostream<>:定義出讀寫對(duì)象,如果不關(guān)心國(guó)際化問(wèn)題,一般直接使用char實(shí)例化的isteram和ostream。
*basic_iostream<>:讀寫對(duì)象。
*basic_streambuf<>:iostream體系的核心,定義出所有“可改寫的stream或,可讀取的stream”的接口。其他的stream classes都是利用它進(jìn)行實(shí)際的字符讀寫操作。
iostream程序嚴(yán)格按照職責(zé)分離的原則來(lái)設(shè)計(jì)。basic_ios派生類型只處理數(shù)據(jù)格式化,實(shí)際讀寫操作由basic_ios派生類所維護(hù)的stream buffer完成。streambuf提供讀寫使用的字符緩沖區(qū),形成對(duì)外的一種抽象概念。