第十四章 14.2.2节练习

练习14.9

为你的Sales_data类定义输入运算符。

解答:

参考书中输入运算符的实现。


练习14.10

对于Sales_data的输入运算符来说如果给定了下面的输入将发生什么情况?

(a) 0-201-99999-9 10 24.95

(b) 10 24.95 0-210-99999-9

解答:

(a)这个属于正常输入,其得到结果也是符合预期的。

bookNo为 0-201-99999-9

units_sold为10

price 为24.95

(b)输入的顺序改变了,会使成员变量得到的值与标准不一致,也就是不符合我们的预期

bookNo为10

units_sold为24 (units_sold的类型是size_t)

price 为 0.95 (之前int类型无法读取‘.’字符,所以只读取了第一个数字,剩下的内容就由price读取了)


练习14.11

下面的Sales_data输入运算符存在错误吗?如果有,请指出来。对于这个运算符如果仍然给定上个练习的输入将会发生什么情况?

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

这里没有对失败的情况进行处理的过程。

第二问还是和上题一样。


练习14.12

你在7.5.1节练习7.40(第240页)中曾经选择并编写了一个类,为它定义一个输入运算符并确保该元素安抚可以处理输入错误。

解答:

又是这题…… 略吧,呼。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值