C++Primer第五版7.6习题

36行为什么报错:没有与这些操作数匹配的 ">>" 运算符。

vs2010下运行。

 #include <iostream>
#include <string>

using namespace std;
struct Sales_data
{
    string isbn() const {return bookNo;}
    Sales_data& combine(const Sales_data&);
    double avg_price() const;
    string bookNo;
    unsigned units_sold;
    double revenue;
};

Sales_data& Sales_data::combine(const Sales_data &rhs)
{
    units_sold +=rhs.units_sold;
    revenue +=rhs.revenue;
    return *this;
}

Sales_data add(const Sales_data &lhs,Sales_data &rhs)
{
    Sales_data sum= lhs;
    sum.combine(rhs);
}
ostream &print(ostream &os,const Sales_data& item)
{
    os << item.isbn() << " " << item.units_sold << " "
        <<item.revenue << " "<<item.avg_price();
    return os;
}
istream &read(istream &is,const Sales_data &item)
{
    double price=0;
    is >> item.bookNo >>item.units_sold >> price;// **没有与这些操作数匹配的 ">>" 运算符**

}

1个回答

const 不应该添加在参数里,因为这个是istream,要修改值的!!!

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐