使用者自定義的型別的資料,是不能直接用「<<」和「>>」來輸出和輸入的。如果想用他們輸出和輸入自己宣告的型別的資料,必須對他們進行過載。
「<<」和「>>」過載函式形式如下:
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...