练习14.9:

输入运算符从给定输入流读取对应类型的对象,存入Sales_data的数据成员中。与输出不同,输入通常要进行一些正确性的判定,并进行相应处理。

class Sales_data
{friend istream&operator>>(istream&is,Sales_data &item);
};istream&operator>>(istream&is,Sales_data &item)
{double price;if >>item.bookNo>>item.units_sold>>price;if (is){item.revenue = item.units_sold*price;}else {item = Sales_data();}return is;
}

练习14.10:
(a)参数中传入的Sales_data对象将会得到输入的值,其中bookNo、units_sold、price的值分别是:0-201-99999-9、10、24.95,同时revenue的值是249.5。
(b)输入错误,参数中传入的Sales_data对象将会得到默认值。

练习14.11:

【出题思路】
理解输入运算符通常要判断输入数据的正确性。
【解答】
这个实现没有判断输入数据的正确性,是错误的。
(a)如果输入的是0-201-99999-9 10 24.95,程序将会正常执行,Sales_data对象得到正确的值。
(b)如果输入的是10 24.95 0-210-99999-9,bookNo、units_sold、price将会得到错误的值,分别是:10,24,0.95,而revenue的值是:24 * 0.95 =22.8。这显然跟我们的预期结果是不一样的。

练习14.12:

#include <iostream>
using namespace std;class Date
{public:Date(){}Date(int y,int m,int d):year(y),month(m),day(d){}friend istream&operator>>(istream &is,Date&dt);private:int year,month,day;
};istream&operator>>(istream&is,Date&dt)
{is >>dt.year>>dt.month>>dt.day;if (!is){dt = Date(0,0,0);}return is;
}

《C++ Primer》14.2.2节练习相关推荐

  1. 老李推荐:第14章4节《MonkeyRunner源码剖析》 HierarchyViewer实现原理-装备ViewServer-端口转发 1...

    老李推荐:第14章4节<MonkeyRunner源码剖析> HierarchyViewer实现原理-装备ViewServer-端口转发 在初始化HierarchyViewer的实例过程中, ...

  2. C++ primer 14章习题答案

    14.1节 练习14.1 相同点:对于优先级和结合型以及操作数的数目都不变. 不同点:重载操作符必须具有至少一个class或枚举类型的操作数. 14.2 下面所有的代码行可能把好几个文件放在一起了. ...

  3. 老李推荐:第14章8节《MonkeyRunner源码剖析》 HierarchyViewer实现原理-获取控件列表并建立控件树 1...

    老李推荐:第14章8节<MonkeyRunner源码剖析> HierarchyViewer实现原理-获取控件列表并建立控件树 poptest是国内唯一一家培养测试开发工程师的培训机构,以学 ...

  4. 《C++ Primer》14.3.2节练习(部分)

    练习14.18: String类的关系运算符就是比较两个字符串字典序的先后. class String {friend bool operator<(const String &s1,c ...

  5. 《C++ Primer》14.3.1节练习

    练习14.16: //为strBlob定义==和!= class strBlob {friend bool operator==(const strBlob &lhs,const strBlo ...

  6. 《C++ Primer》14.2.1节练习

    练习14.6: class Sales_data {friend ostream&operator<<(sotream&os,const Salse_data &i ...

  7. C++primer 9.2.1节练习

    练习9.3 迭代器begin和end必须指向相同的容器,end可以与begin指向相同的位置,但不能指向begin之前的位置: 练习9.4 1 #include <iostream> 2 ...

  8. C++primer 10.2.1节练习

    练习10.3 1 #include<iostream> 2 #include<string> 3 #include<vector> 4 #include <s ...

  9. C++primer 13.1.6节练习

    练习13.18 1 #include <iostream> 2 #include <string> 3 #include <memory> 4 5 using na ...

最新文章

  1. SQL 中left join ,inner join,right join的区别
  2. 通过FxCop来验证.NET编码规范
  3. 跨域 || Jsonp
  4. echarts 中 symbol 自定义图片
  5. tohexstring方法_Java Float类toHexString()方法的示例
  6. 前端xss攻击的原理
  7. React学习笔记:入门案例
  8. [转]Android web开发快速入门
  9. “有本事你去学校数据库把期末成绩改了“,“好,你等着。“
  10. java rsa padding_rsa加密--选择padding模式需要注意的问题。。。
  11. 设计模式--组合模式C++实现
  12. 从空运物流到无人机物流,圆通将战火烧到了时效件
  13. 小心 transmittable-thread-local 的这个坑
  14. JSDOM案例:猜字游戏
  15. 用计算机玩游戏的视频教程,让桌面上同时操作游戏和显示视频的技巧-电脑教程...
  16. LTE语音业务-VOLTE(一)
  17. 小白必看:三层交换机实现VLAN互通实验(图文并茂)
  18. 2004-2020年全国31省环境规制强度
  19. python中使用什么命令安装组件_在离线环境下安装python组件
  20. bootstrap 表单验证

热门文章

  1. Android之popWindows底部弹出挡住了华为虚拟键盘问题
  2. Android之在后台不显示activity方法
  3. 【C语言简单说】三:整数变量和输出扩展(1)
  4. 衡量计算机浮点数操作性能,计算机系统基础:计算机性能评价知识笔记
  5. python用pandas读取excel_Python使用pandas读取Excel文件数据和预处理小案例
  6. python爬虫实例手机_Python爬虫实现爬取京东手机页面的图片(实例代码)
  7. mysql 5.7 主从切换_mysql5.7 主从复制的正常切换【转】
  8. 当全家人一起看电影,播到羞羞镜头时......
  9. 我妈要把闺蜜介绍给我当女朋友......
  10. 这些让人看瞎了的设计!实力证明,数学才是世界的最终boss!