首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C++ >> C++ 基礎

C++ I/O 類別庫全景圖:從類別繼承到運算符重載的核心架構

     編輯:C++ 基礎

流的本質

流 = 有序位元組序列,對應記憶體緩衝區。輸入:裝置 → 緩衝區 → 程式;輸出:程式 → 緩衝區 → 裝置。

核心類別繼承體系

ios (抽象基類)
├── istream (輸入基類)          → ifstream, istrstream, istream_withassign
├── ostream (輸出基類)          → ofstream, ostrstream, ostream_withassign
└── iostream (輸入輸出基類)     → fstream, strstream, iostream_withassign
  • istream:支援 >>, get(), getline() 等
  • ostream:支援 <<, put() 等
  • iostream:多重繼承 istream + ostream
  • 檔案流:ifstream/ofstream/fstream (對應 fstream 標頭)
  • 字串流:istrstream/ostrstream/strstream (對應 strstream 標頭)

標頭檔分工

標頭檔用途
<iostream>基本流操作、標準流物件宣告
<fstream>檔案流類別
<strstream>字串流類別
<iomanip>格式控制元
<stdiostream>C/C++ I/O 混合使用

標準流物件 (定義於 iostream)

物件類別對應裝置C 對應
cinistream_withassign鍵盤stdin
coutostream_withassign螢幕stdout
cerrostream_withassign螢幕stderr
clogostream_withassign螢幕stderr

建構形式:ostream cout(stdout); 將裝置指標傳入建構子完成關聯。

運算符重載機制

  • << / >> 原為位移運算子,在 istream/ostream 中重載為提取/插入運算子
  • 每種標準型別各有一組重載:operator<<(int), operator<<(double), operator<<(char*)...
  • cout << "C++" 實際調用 cout.operator<<("C++")
  • 自訂類別需自行重載 << / >> 才能直接流式輸出入

方向記憶法

  • >> var:箭頭指向變數 → 資料流入變數
  • << var:箭頭指向外 → 資料從變數流出

總結

C++ I/O 庫以 ios 為根,分輸入/輸出/雙向三支脈,延伸至標準/檔案/字串三大領域。運算符重載實現型別安全與擴展性,標準流物件預裝裝置關聯。理解此架構,即掌握 C++ I/O 的骨幹脈絡。

  1. 上一篇文章:
  2. 下一篇文章:
  • --热点文章
  • Copyright © 程式碼之家 All Rights Reserved