c++PrimerChap7类

仅仅记录贴,按书上的做完了一边,想把private分离出来已经很难了。因为is用到的成员变量都是直接当做public使用的,如果要改的话可以考虑存储输入,让后用构造函数对类进行初始化。

#include<iostream>
using namespace std;


class Sales_data{
public:

		string bookNo;
		unsigned unit_sold;
		double revenue;

		string isbn()const {return this->bookNo;	}
		double avg_price()const;
		Sales_data &combine(const Sales_data&);
		Sales_data(istream &is);
		//友元函数 
		friend Sales_data add(const Sales_data& ls,const Sales_data& rs);
}; 

 Sales_data add(const Sales_data& ls,const Sales_data& rs)
{
	Sales_data sum = ls;
	sum.combine(rs);
	return sum;
}
//返回的值是对ostream的引用 
ostream &print(ostream& os,const Sales_data &item){
	os<<item.isbn()<<endl
	  <<item.unit_sold<<endl
	  <<item.revenue<<endl;
	  return os;
	
}
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;
}

double Sales_data::avg_price()const{
	if(revenue)return revenue/unit_sold;
	else return 0;
}

Sales_data& Sales_data::combine(const Sales_data& rhs){
//    this->revenue  = this->revenue + rhs.revenue;
	this->revenue +=  rhs.revenue; 
	this->unit_sold += rhs.unit_sold;
	return *this;
}
	//外部定义构造函数
Sales_data::Sales_data(istream &is) {
		read(is,*this);
	}
  
int main(){
	
	
	return 0;
}

  

很多时候我都在期待3年后的自己是一个什么样的,5年后自己又是一个什么样的。因为未知,所以生命才更加精彩。
原文地址:https://www.cnblogs.com/ashen/p/4396890.html