首页 > 代码库 > 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 else40 {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 }
C++学习基础八——重载输入和输出操作符
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。