日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

输入输出运算符重载

發布時間:2023/11/30 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 输入输出运算符重载 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

C++能夠使用流提取運算符>>和流插入運算符<< 來輸入輸出內置數據類型,也可以重載流提取運算符和流插入運算符來操作對象等用戶自定義的數據類型。

我們有時需要把運算符重載函數聲明為類的友元函數,這樣我們就能不用構造對象而直接調用函數。

/*** inputOver.cpp ***/ #include<iostream> using namespace std;class Distance {private:int feet;int inches;public:Distance(){feet = 0;inches = 0;}Distance(int f,int i){feet = f;inches = i;}friend ostream &operator<<(ostream &output,const Distance &D){output << "F: " << D.feet << " I: " << D.inches;return output;}friend istream &operator>>(istream &input,Distance &D){input >> D.feet >> D.inches ;return input;} };int main() {Distance D1(11,10),D2(5,11),D3;cout << "Enter the value of object : " << endl;cin >> D3;cout << "First Distance : " << D1 << endl;cout << "Second Distance : " << D2 << endl;cout << "Third Distance : " << D3 << endl;return 0; }

運行結果:

exbot@ubuntu:~/wangqinghe/C++/20190808$ g++ inputOver.cpp -o inputOver

exbot@ubuntu:~/wangqinghe/C++/20190808$ ./inputOver

Enter the value of object :

70 10

First Distance : F: 11 I: 10

Second Distance : F: 5 I: 11

Third Distance : F: 70 I: 10

?

如果將重載程序寫成成員函數形式,會是以d1 << cout的形式輸出數據。

/*** memberOver.cpp ***/ #include<iostream> using namespace std;class Distance {private:int feet;int inches;public:Distance(){feet = 0;inches = 0;}Distance(int f,int i){feet = f;inches = i;}ostream &operator<<(ostream &os){os << "F: " << feet << " I: " << inches << endl;return os;} };int main() {Distance d1(20,18);d1 << cout;return 0; }

運行結果:

exbot@ubuntu:~/wangqinghe/C++/20190808$ g++ memberOver.cpp -o memberOver

exbot@ubuntu:~/wangqinghe/C++/20190808$ ./memberOver

F: 20 I: 18

轉載于:https://www.cnblogs.com/wanghao-boke/p/11325192.html

總結

以上是生活随笔為你收集整理的输入输出运算符重载的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。