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

    技术2022-05-20  59

     

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


    最新回复(0)