C 中輸入輸出流運算子的過載

2021-07-11 22:09:12 字數 585 閱讀 8468

cout是ostream類的物件,cin是istream類的物件。

我們平時用的cout《就相當於cout.operator<<(...)。也就是說正常使用(不對operator《進行函式過載,我們用的都是ostream類庫中本身定義好了函式

而當我們需要對cout《進行過載時,比如我們定義了乙個類student,他的乙個物件s1,我們想要cout

ostream& operator<<(ostream& co,const student& s) {

co《關於這個函式,有兩點值得思考:

(1)它的返回值,是這樣理解的:

cout<<5<<"hello";

在我們輸出了乙個5以後返回的是呼叫第乙個《的物件的引用,即相當於第乙個cout,我們就可以接著連續的用同乙個cout來呼叫第二個《函式了

(2)引數中引用的s物件,以及在函式體中直接呼叫s.sname,是需要我們把該函式設定成student類的友元類的,這樣該函式就相當於student類的成員函式,可以直接訪問到student類的成員變數。

C 運算子過載 輸入 輸出運算子

為了與io標準庫一致,過載輸入輸出運算子函式的第乙個行參應該是流的引用,第二個行參是物件的引用。如果過載為類的成員函式,第乙個行參應該是物件的引用,第二個行參是流的引用。使用方式是 classobj cout 這樣與標準io庫就不一致了,所以輸入輸出運算子不能過載為類的成員函式,可以過載為類的友元函...

C 運算子過載 輸入 輸出運算子

為了與io標準庫一致,過載輸入輸出運算子函式的第乙個行參應該是流的引用,第二個行參是物件的引用。如果過載為類的成員函式,第乙個行參應該是物件的引用,第二個行參是流的引用。使用方式是 classobj cout 這樣與標準io庫就不一致了,所以輸入輸出運算子不能過載為類的成員函式,可以過載為類的友元函...

關於過載流輸入輸出運算子

盡可能簡潔清晰的向同我一樣的小白們寫範例以便於理解。以下為單獨的流輸出過載 include include using namespace std class t 建構函式,並賦初始值 private double aa double bb ostream operator ostream outp...