過載流插入運算子

2021-06-23 04:56:19 字數 1001 閱讀 4957

使用者自定義的型別的資料,是不能直接用「<<」和「>>」來輸出和輸入的。如果想用他們輸出和輸入自己宣告的型別的資料,必須對他們進行過載。

「<<」和「>>」過載函式形式如下:

istream& operator>>(istream&,自定義型別&);

ostream& operator <<(ostream&,自定義型別&);

注意:只能將過載「>>」和「<<」的函式作為友元函式或普通函式,而不能將他們定義為成員函式。

#include

using namespace std;

class complex

complex(double r,double i)

complex operator+(complex &c2);                   //「+」運算子過載為成員函式

friend ostream& operator<<(ostream&,complex &c);  //「<<」運算子過載為友元函式,注意:不能過載為類成員函式

private:                                              //只能過載為友元函式或者普通函式

double real;

double image;

};complex complex::operator +(complex &c2)

ostream& operator<<(ostream &output,complex &c)     //定義運算子「<<」的過載函式

return output的作用是什麼?回答是能連續向輸出流插入資訊,output是ostream類得物件,他是實參cout的引用,也可以說是cout的別名,共享同一段儲存單元。因此,return output就是return cout,將輸出流cout的現狀返回,即保留輸出流的現狀。

cout《執行(cout《現在可以理解了為什麼c++規定運算子「<<」過載函式為什麼第乙個引數和函式型別都必須是ostream型別的引用,就是為了返回cout的當前值以便連續輸出。

過載流插入運算子《和流提取運算子》

includeclass complex complex double r,double i complex operator complex c2 friend ostream operator ostream output,complex c private double real double...

過載流插入運算子和流提取運算子

有兩個矩陣a和b,均為2行3列。求兩個矩陣之和。過載運算子 使之能用與矩陣相加,如c a b。過載流插入運算子 和流提取運算子 使之能用與該矩陣的輸入和輸出,如cin a,cout 我是剛學習c de菜鳥 源 如下 include using namespace std class matrix m...

過載之過載流插入和流提取運算子

c 的流插入運算子 和流提取運算子 是c 在類庫中提供的,所有c 編譯系統都在類庫中提供輸入流類istream和輸出流類ostream。cin和cout分別是istream類和ostream類的物件。在類庫提供的標頭檔案中已經對 和 進行了過載,使之作為流插入運算子和流提取運算子,能用來輸出和輸入c...