• 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年后自己又是一个什么样的。因为未知,所以生命才更加精彩。
  • 相关阅读:
    Java基础16(Java8的其它新特性)
    Java基础15(反射机制)
    Java基础14(网络编程)
    tensorflow.keras
    递归算法
    tensorfolw学习笔记——张量、微分、自定义训练、keras
    python可变长参数、key-only参数之收集和解包参数
    20200909- 集群迁移记录
    20200909--记一次发布流程
    20200909----开发沟通提效记录
  • 原文地址:https://www.cnblogs.com/ashen/p/4396890.html
Copyright © 2020-2023  润新知