|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
在跳出循环后,39行的print函数不知道为什么多输出了一个数据,有大佬知道这是为什么吗qwq
这个是Sales_data结构体
- #pragma once
- #include<string>
- #include<iostream>
- struct Sales_data{
- Sales_data(const std::string &a):bookno(a){}
- Sales_data(const std::string &a,unsigned b,double c):bookno(a),units_sold(b),revenue(c){}
- Sales_data():bookno(),units_sold(0),revenue(0.0){}//不支持类内初始值,自己加的结构函数初始化列表
- Sales_data(std::istream &a);
- std::string isbn()const;
- Sales_data& combine(const Sales_data &a);
- std::string bookno;
- unsigned units_sold;
- double revenue;
- };
- std::string Sales_data::isbn()const{
- return bookno;
- }
- Sales_data& Sales_data::combine(const Sales_data &a){
- units_sold+=a.units_sold;
- revenue+=a.revenue;
- return *this;
- }
- Sales_data add(const Sales_data &item1,const Sales_data &item2){
- Sales_data item3=item1;
- item3.combine(item1);
- return item3;
- }
- std::istream& read(std::istream &is,Sales_data &item){//这里返回的istream是引用,原因是流对象不允许复制,在传给函数作为参数是应该传入引用
- is>>item.bookno>>item.units_sold>>item.revenue;
- return is;
- }
- std::ostream& print(std::ostream &os,Sales_data &item){
- os<<item.bookno<<" "<<item.units_sold<<" "<<item.revenue;
- return os;
- }
- Sales_data::Sales_data(std::istream &is){
- read(is,*this);
- }
复制代码
|
-
|