C++学习基础八——重载输入和输出操作符
生活随笔
收集整理的這篇文章主要介紹了
C++学习基础八——重载输入和输出操作符
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
C++學習基礎八——重載輸入和輸出操作符
一、重載輸入操作符的要點:
1、返回值為istream &。 2、第一個參數為istream &in。 3、第二個參數為自定義類型的引用對象(例如Sales_Item &item)。二、重載輸出操作符的要點:
1、返回值為ostream &。 2、第一個參數為ostream &。 3、第二個參數為自定義類的引用對象(例如const Sales_Item &item)。三、代碼片段如下:
1 class Sales_Item 2 { 3 //注意:形參為引用時,實參和形參才指向共同的對象,否則修改形參的數據不影響實參。 4 friend ostream &operator<< (ostream &out,const Sales_Item &item); 5 friend istream &operator >> (istream &in,Sales_Item & item); 6 public : 7 Sales_Item() 8 { 9 count = 0; 10 price = 0; 11 } 12 Sales_Item(string &book,int number,double unit) 13 { 14 isbn = book; 15 count = number; 16 price = unit * number; 17 } 18 19 private: 20 string isbn; 21 int count; 22 double price; 23 }; 24 25 ostream &operator<< (ostream &out,const Sales_Item &item) 26 { 27 out<<item.isbn<<" , "<<item.count<<" , "<<item.price<<endl; 28 return out; 29 } 30 31 istream &operator>> (istream &in,Sales_Item &item) 32 { 33 double price; 34 in >> item.isbn >> item.count >> price; 35 if(in) 36 { 37 item.price = price * item.count; 38 } 39 else 40 { 41 item = Sales_Item(); 42 } 43 44 return in; 45 } 46 int main() 47 { 48 string s("0-123-12345-X"); 49 Sales_Item item(s,10,12.00); 50 cout<<item<<endl; 51 52 cin>>item; 53 cout<<item<<endl; 54 cout<<"ok"<<endl; 55 return 0; 56 }?
posted on 2016-09-09 23:19 bky2016 閱讀(...) 評論(...) 編輯 收藏轉載于:https://www.cnblogs.com/calence/p/5858398.html
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的C++学习基础八——重载输入和输出操作符的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: javascript基础07
- 下一篇: s3c2440移植MQTT