Cplusplusrookie 2015-02-02 12:05 采纳率: 50%
浏览 2198

以istream为参数的构造函数问题

初学C++看到书本上说可以istream为构造函数,可是代码打上去有不是那么回事了。
这是我在书上打的一个关于整理书店书籍销售的类:

 struct Sales_data
{
    string bookNo;//书名
    unsigned unit_sold;//销售总数
    double revenue;//总价


    //构造函数
    Sales_data(iostream& is)
    {
        read(is,*this);//read函数的作用是从is中读取一条交易信息
        //然后存入this对象中
    }

    string isbn()const//返回书名号
    {
        return  bookNo;
    }
    Sales_data& combine(const Sales_data&);//将相同书名号的类对象的销售总额相加
    double average()const;//计算这本书的平均售价
};

//read的定义
istream &read(istream &is,Sales_data &item)
{
    double price=0;
    is>>item.bookNo>>item.unit_sold>>price;//分别输入书名号,书的销售总数和单价
    item.revenue=price*item.unit_sold;
    return is;
}

然后我在main 函数里面创建一个对象的时候是这样创建的
Sales_data book(cin);
然后编译器就说我没有相应的构造函数,哎呀╮(╯▽╰)╭就是书上没说当构造函数以istream为参数的时候怎么创建对象,明明写了构造函数,可是编译器老说没有对应的构造函数。请各位前辈有空帮帮忙,万分感谢



  • 写回答

1条回答 默认 最新

  • qq_33555452 2016-01-20 14:08
    关注

    你试着把iostream改成istream 构造函数那

    评论

报告相同问题?

悬赏问题

  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥200 uniapp长期运行卡死问题解决
  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?
  • ¥15 乘性高斯噪声在深度学习网络中的应用
  • ¥15 关于docker部署flink集成hadoop的yarn,请教个问题 flink启动yarn-session.sh连不上hadoop,这个整了好几天一直不行,求帮忙看一下怎么解决
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集