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

C++学习基础八——重载输入和输出操作符相关推荐

  1. java基础-基本的输入与输出

    java基础-基本的输入与输出 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.基本的输出 基本的输出,System.out 就是系统的标准输出设备,默认为显示器. 1>. ...

  2. 《Python零基础快乐学习之旅》学习笔记4——基本输入与输出

    第4章 基本输入与输出 4.1 Python的辅助说明help() help()函数可以列出某一个Python的指令或函数的使用说明. >>> help(print) Help on ...

  3. Java I/O系统学习系列二:输入和输出

    编程语言的I/O类库中常使用流这个抽象概念,它代表任何有能力产出数据的数据源对象或者是有能力接收数据的接收端对象."流"屏蔽了实际的I/O设备中处理数据的细节. 在这个系列的第一篇 ...

  4. linux php直接输出,linux学习之shell脚本 ------- 输入与输出

    概述 顾名思义,通俗来说异常就是指,那些产生在我们本来斟酌和设定的计划以外的意外情况. 生活中总是会存在各种突发情况,如果没有做好准备,就让人措手不及. 你和朋友约好了明天1起去登山,半道上忽然乌云蔽 ...

  5. 复杂个人信息输出程序python_Python编程基础04:输入与输出

    一.IPO模型 一个程序,按照功能可以划分为三个部分:输入部分.处理部分和输出部分 本讲我们学习基本输入与输出,通过输入函数获取数据(数值型和字符串),通过输出函数将处理结果以某种方式呈现.处理部分会 ...

  6. python输入年月日输出年月日_Python编程基础04:输入与输出

    一.IPO模型 一个程序,按照功能可以划分为三个部分:输入部分.处理部分和输出部分 本讲我们学习基本输入与输出,通过输入函数获取数据(数值型和字符串),通过输出函数将处理结果以某种方式呈现.处理部分会 ...

  7. powershell 变量_极客学院:学习PowerShell变量,输入和输出

    powershell 变量 As we move away from simply running commands and move into writing full blown scripts, ...

  8. alert弹框里弹一个表格_Python学习第十三弹 输入与输出

    Python程序可从键盘读取输入也可以从文件读取输入,程序的可以输出到屏幕上,也可以保存到文件以便于后期使用. 一.控制台I/O 1. 读取键盘输入 内置函数input([prompt]),用于从标准 ...

  9. linux路由相关函数,Linux 路由 学习笔记 之十一 输入、输出路由查找相关的接口函数...

    对于路由功能模块的学习,也已经很长时间了.关于路由项的创建与查找.策略规则相关的创建与查找.路由缓存的创建与查找,都是分开来分析的,没有说明这些模块是如何配合使用的,以及模块之间的联系.本节就分析一下 ...

最新文章

  1. R语言广义线性模型函数GLM、广义线性模型(Generalized linear models)、GLM函数的语法形式、glm模型常用函数、常用连接函数、逻辑回归、泊松回归、系数解读、过散度分析
  2. PHP报“Cannot start session without errors”
  3. mysql isolation level_MySQL数据库事务隔离级别(Transaction Isolation Level)
  4. 【我的区块链之路】- Hyperledger fabric的简单入门(四)链码的编写及调试
  5. html中评论存储方法,html5基于数据存储的评论留言板demo
  6. 在Linux下常用的命令
  7. centos6/7安装gitlab
  8. Java开发人员应该知道的5种错误跟踪工具
  9. 大刚二开emlog模板超级帅-全版本兼容-修复各种bug
  10. 已经发车的票还能取出来吗_没想到!火车坐过站,还能免费送回来?方法如下...
  11. 华硕java安装教程win10_华硕笔记本安装win10系统教程
  12. PHP新的连接MySQL方法mysqli
  13. python语言中文怎么读-python中文读什么
  14. thinkphp __hash__
  15. 正逻辑与负逻辑的关系
  16. WiFi 深入理解:时域和频域
  17. PhoneGap 外掛程式開發指南
  18. 计算机绘图教程简单,工程制图CAD计算机绘图指导教程
  19. EXTJS记事本:当CompositeField遇上RowEditor
  20. HTML函数多个条件并列,excel if函数如何多个条件并列

热门文章

  1. 获取script内html元素,Python从scripthtml标记内部获取数据值
  2. MySQL 复制夯住排查以及原理探讨
  3. 美团在Redis上踩过的一些坑-2.bgrewriteaof问题
  4. NFS技术实现图片共享存储
  5. 索引unusable|disable|enable
  6. sqlserver 查看进程以及查看死锁代码
  7. Deep Learning 教程翻译
  8. OC-数组排序-NSSortDescriptor使用
  9. struts2 s:optiontransferselect 标签的使用
  10. 关于 mldonkey 的一些讨论和设置