過載輸入輸出運算子

2021-08-20 19:50:48 字數 1350 閱讀 3051

過載輸入輸出運算子

過載輸出運算子

第二個引數一般來說是乙個常量的引用,該常量是我們想要輸出的類型別。(用引用是因為我們希望避免複製實參; 用常量是因為通常列印物件的時候不需要改變物件的內容)

輸出運算子應儘量減少格式化的操作,尤其是換行符,這樣有利於使用者對輸出格式的控制。

一般會宣告為友元函式(friend),這樣輸出運算子函式才能使用類的私有成員

輸入、輸出運算子都必須是非成員函式。否則,他們的左側運算物件將是我們的類的乙個物件。

//例如,假設我們定義了類student,輸出運算子函式為成員函式

class student;

...student stu;

//為了直觀,用這種方式呼叫輸出運算子函式錯了

stu.operator<<(cout); //等價於,stu《錯了

#include

using

namespace

std;

class student

friend ostream &operator

<<(ostream &os,const student &stu); //宣告為友元

private:

int num;

string name;

};ostream &operator

<<(ostream &os,const student &stu)

int main()

過載輸入運算子

該運算子通常會返回某個給定流的引用。

輸入運算子必須處理輸入可能失敗的情況,而輸出運算子不需要。

解決的辦法是,對輸入結果進行判斷,如果輸入失敗,則將乙個新的預設初始化的物件賦值給操作物件。

class student

//過載輸出運算子

friend ostream &operator

<<(ostream &os,const student &stu); //宣告為友元

//過載輸入運算子

friend istream &operator>>(istream &is,student &stu);

private:

int num;

string name;

};ostream &operator

<<(ostream &os,const student &stu)

istream &operator>>(istream &is,student &stu)

int main()

過載輸入輸出運算子

我們平時可以用流 std cout str n 輸出 輸入字串和整型等內建型別的值。但是對於我們自定義的類,比如 student 類,卻不能直接通過 cout student 這樣的形式來輸出類的內容或給類賦值。怎麼辦呢?我們可以通過過載輸出 輸入運算子,讓自定義的類也支援這樣的操作。通常情況下,輸...

過載輸入輸出運算子

一 實驗目的 1 在實驗2 的基礎上,在類 person 中,以友元形式過載輸入輸出運算子 2 通過 cout cout display 顯示右值物件的資訊。3 通過 cin teach 或 cin stud 呼叫右值類的虛函式 setvalue 通過鍵盤輸入右值物件的資訊。1 include2 i...

輸入輸出運算子過載

過載 為了更方便實現複雜物件的輸入輸出 只貼出關鍵 多餘的就不貼了.輸出運算子過載 成員函式 ostream operator ostream os ostream boy operator ostream os include include boy.h intmain void int main...