码迷,mamicode.com
首页 > 编程语言 > 详细

c++PrimerChap7类

时间:2015-04-06 23:12:15      阅读:195      评论:0      收藏:0      [点我收藏+]

标签:

仅仅记录贴,按书上的做完了一边,想把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;
}

  

 

c++PrimerChap7类

标签:

原文地址:http://www.cnblogs.com/ashen/p/4396890.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!