设为首页 加入收藏

TOP

C++primer书店程序
2015-11-21 00:58:24 来源: 作者: 【 】 浏览:2
Tags:primer 书店 程序
#include 
  
   
#include 
   
     #include 
    
      #include 
     
       #include 
      
        using namespace std; class Sales_data { friend std::istream& operator>>(std::istream&, Sales_data&); friend std::ostream& operator<<(std::ostream&, const Sales_data&); friend Sales_data operator+(const Sales_data&,const Sales_data&);//非成员函数(对称性) friend bool operator==(const Sales_data&,const Sales_data&); friend bool operator!=(const Sales_data&,const Sales_data&); public: Sales_data():units_sold(0),revenue(0.0){} Sales_data(const std::string &s):bookNo(s),units_sold(0),revenue(0.0){} Sales_data(const std::string &s,unsigned n,double p):bookNo(s),units_sold(n),revenue(n*p){} Sales_data(std::istream &is); Sales_data& operator+=(const Sales_data&);//成员函数(复合赋值一般是成员函数) std::string isbn()const{return bookNo;} Sales_data& operator=(const std::string &s); private: inline double avg_price()const;//inline private: std::string bookNo; //isbn unsigned units_sold;//销售量 double revenue; //总价 }; inline double Sales_data::avg_price() const { return units_sold ? revenue/units_sold : 0; } Sales_data::Sales_data(std::istream &is) { is>>*this; } std::istream& operator>>(std::istream& is,Sales_data& item) { double price=0.0; is>>item.bookNo>>item.units_sold>>price; if(is)//检测流的状态,输入易错且改写对象数据 item.revenue=item.units_sold*price; else item=Sales_data(); return is; } std::ostream& operator<<(std::ostream& os, const Sales_data& item) { os<
       
      
     
    
   
  
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇从一个数组中随机的取出若干个不.. 下一篇LintCode 字符串查找

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: