extern ostream cout;
extern ostream cerr;
extern ostream clog;
cout,cerr和clog被聲明爲ostream的類型。但是cout和clog有緩衝區,但是cerr沒有。同一類型的對象cout,cerr,clog表現如何不同?
相同類型的對象如何表現不同?
extern ostream cout;
extern ostream cerr;
extern ostream clog;
cout,cerr和clog被聲明爲ostream的類型。但是cout和clog有緩衝區,但是cerr沒有。同一類型的對象cout,cerr,clog表現如何不同?
相同類型的對象如何表現不同?
這三個對象具有相同的類型,但它們不是相同的實例。 ostream
的實例可以配置不同;在這種情況下,三個對象被配置爲以特定方式處理每個對象。這是有道理的:如果同一類的所有對象都以相同的方式表現出來,那麼沒有理由讓它們成爲獨立的對象。
的constructor需要streambuf
選項
explicit ostream (streambuf * sb);
即時猜測它們中的每使用不同streambuf
輸出,並且那些streambuf
對象控制輸出是如何緩衝(或沒有)。