重载 >> 操作符【c++ primer 】

本文探讨了C++中输入操作符(istream operator>>)的重载方法及其在遇到输入错误时的处理策略。文章强调了在设计输入操作符时确保数据完整性和对象状态的重要性,并介绍了如何通过内置机制来实现错误恢复。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

istream& operator>>(istream& in, Sales_item& s)

{

double price;

in >> s.isbn >> s.units_sold >> price;

// check that the inputs succeeded

if (in)

s.revenue = s.units_sold * price;

else

s = Sales_item(); // input failed: reset object to default state

return in;

}

 

When designing an input operator, it is important to decide  what to do about error-recovery, if anything.

因为一旦你重载输入操作符的时候,给类的数据成员赋值的话,那么有可能3个数据成员只赋值成功了两个,那么这个时候,这个对象就处在一个错误的状态,所以关于输入的错误,应该注意处理。输入的数据是不是我们想要的格式,这个也是需要检查的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值