過載輸入輸出運算子
過載輸出運算子
第二個引數一般來說是乙個常量的引用,該常量是我們想要輸出的類型別。(用引用是因為我們希望避免複製實參; 用常量是因為通常列印物件的時候不需要改變物件的內容)
輸出運算子應儘量減少格式化的操作,尤其是換行符,這樣有利於使用者對輸出格式的控制。
一般會宣告為友元函式(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...