相对于V1.0,有如下改动:
1.由struct类型替换成了class类型并进行封装
2.添加了新的接口函数add()
3.将接口函数更改为Sales_data的友元函数
4.添加了能够使Sales_data进行初始化的构造函数
#include<iostream>
#include<string>
#include<Windows.h>
using namespace std;
class Sales_data {
friend istream &read(istream&, Sales_data&);
friend ostream &print(ostream&, Sales_data&);
friend Sales_data add(Sales_data&, Sales_data&);
public:
Sales_data() = default;
Sales_data(const string &s) :bookNo(s) {};
Sales_data(const string &s, unsigned n, double p) :bookNo(s), units_sold(n), revenue(p) {};
Sales_data(istream &is) { read(is, *this); }
Sales_data& Sales_data::combine(const Sales_data &rhs) {
units_sold += rhs.units_sold;
revenue += rhs.revenue;
return *this;
}
string Sales_data::isbn() const { return bookNo; }
priv