簡體   English   中英

需要從 istream 和 ostream 派生 iostream

[英]need for deriving iostream from istream and ostream

在學習I/O我遇到了:

iostream:istream 從流中讀取,ostream 向流寫入,iostream 讀寫流:派生自 istream 和 ostream

如果istreamostream做同樣的工作,繼承的必要性是什么?

正是通過使iostreamistreamostream繼承,您將獲得一個支持輸入和輸出以及兩個接口(來自istreamostream )的類。 這並不意味着功能是重復的,它只是意味着istreamostream的接口及其實現被重用。

作家和讀者的原型是

class MyClass;
std::ostream& operator<< (std::ostream stream&, const MyClass &obj)
{
    obj->WriteTo(stream);
    return stream;
}

std::istream& operator>> (std::istream stream&, MyClass &obj)
{
    obj->ReadFrom(stream);
    return stream;
}

這些函數(尤其是編寫器)在MyClass的成員上調用較低級別的流函數。

std::istreamstd::ostream派生std::iostream意味着您可以將std::iostream的實例傳遞給任一函數,並且它會自動傳入std::iostream的正確部分。

std::istreamstd::ostream靜態派生自std::ios ,其中包含它們的公共代碼。

暫無
暫無

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

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