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

来源:互联网 发布:个人发卡网源码 编辑:程序博客网 时间:2024/04/28 12:24

 

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个数据成员只赋值成功了两个,那么这个时候,这个对象就处在一个错误的状态,所以关于输入的错误,应该注意处理。输入的数据是不是我们想要的格式,这个也是需要检查的。

原创粉丝点击