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个数据成员只赋值成功了两个,那么这个时候,这个对象就处在一个错误的状态,所以关于输入的错误,应该注意处理。输入的数据是不是我们想要的格式,这个也是需要检查的。
本文探讨了C++中输入操作符(istream operator>>)的重载方法及其在遇到输入错误时的处理策略。文章强调了在设计输入操作符时确保数据完整性和对象状态的重要性,并介绍了如何通过内置机制来实现错误恢复。
5650

被折叠的 条评论
为什么被折叠?



