簡體   English   中英

Cout是ostream_withassign類的對象

[英]Cout is an object of ostream_withassign class

在此處輸入圖片說明 到目前為止,我相信cout是ostream類的對象。 但是今天我讀了一本書,指出cout是osream_withassign類的對象。 這個課程在哪里?

我是C ++輸入/輸出概念的新手,所以請問有人可以向我解釋iostream庫中類的層次嗎? 我用谷歌搜索,但找不到確切的答案。

編輯:我將附加在同一本書中稍后發現的圖像。

該標准似乎要求std::cout具有類型std::ostream 從歷史上看,在經典(預標准)iostream中,它必須是ostream ostream派生的類型。 (沒有指定哪個,因此實現不必記錄它。)我懷疑這是標准中的意外高規格,但這就是事實。

從來沒有可以依靠的“標准”類ostream_withassign 在標准標准之前的經典iostream中,至少有一個實現確實有這樣的類,該類用於cout (當時沒有std:: cout ,以便管理初始化,盡管我不確定細節。 據我所知,即使那樣,這只是實現細節,即使實現也不指定。 它並不普遍; 那時我沒有使用過任何實現,而且在我今天知道的任何實現中都不存在。

所以這本書過時了。 而且如果這本書聲稱是關於C ++的,那是錯誤的,即使在那時也是如此。 並且,如果它聲稱是關於C ++的特定實現的,則取決於:如果它描述的是內部細節,那是正確的,但是如果它聲稱描述的是接口,那是錯誤的。

關於實際層次結構,您可以閱讀C ++語言的標准,或在此處查看

std::cout是類型為std::ostream的對象,其類型為std::basic_ostream<char>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM