zoukankan      html  css  js  c++  java
  • C++primer 第一章网站上的代码

    <pre name="code" class="cpp">C++primer 第一章网站上的代码:
    #ifndef SALESITEM_H
    #define SALESITEM_H
    #include <iostream>
    #include <string>
     
    class Sales_item
    {
    public:
    Sales_item(const std::string &book):isbn(book),units_sold(0),revenue(0.0){}
    Sales_item(std::istream &is){ is >> *this;}
    friend std::istream& operator>>(std::istream &,Sales_item &);
    friend std::ostream& operator<<(std::ostream &,const Sales_item &);
    public:
    Sales_item & operator+=(const Sales_item&);
    public:
    double avg_price() const;
    bool same_isbn(const Sales_item &rhs)const
    {
    return isbn == rhs.isbn;
    }
    Sales_item():units_sold(0),revenue(0.0){}
    public:
    std::string isbn;
    unsigned units_sold;
    double revenue;
    };
     
    using std::istream;
    using std::ostream;
    Sales_item operator+(const Sales_item &,const Sales_item &);
    inline bool operator==(const Sales_item &lhs,const Sales_item &rhs)
    {
    return lhs.units_sold == rhs.units_sold && lhs.revenue == rhs.revenue && lhs.same_isbn(rhs);
    }
    inline bool operator!=(const Sales_item &lhs,const Sales_item &rhs)
    {
    return !(lhs == rhs);
    }
     
    inline Sales_item & Sales_item::operator +=(const Sales_item &rhs)
    {
    units_sold += rhs.units_sold;
    revenue += rhs.revenue;
    return *this;
    }
    inline Sales_item operator+(const Sales_item &lhs,const Sales_item &rhs)
    {
    Sales_item ret(lhs);
    ret += rhs;
    return ret;
    }
    inline istream& operator>>(istream &in,Sales_item &s)
    {
    double price;
    in >> s.isbn >> s.units_sold >> price;
    if(in)
    s.revenue = s.units_sold * price;
    else
    s = Sales_item();
    return in;
    }
    inline ostream& operator<<(ostream &out,const Sales_item &s)
    {
    out << s.isbn << "	" <<s.units_sold << "	" << s.revenue << "	" << s.avg_price();
    return out;
    }
    inline double Sales_item::avg_price() const
    {
    if(units_sold)
    return revenue/units_sold;
    else
    return 0;
    }
    #endif


    
        
    
    
  • 相关阅读:
    安装Python 3.6 在Ubuntu 16.04 LTS 版本
    [leetcode]447. Number of Boomerangs
    【leetcode】443. String Compression
    第7课 课堂学习小问答
    第11章 进程间通信(4)_进程信号量
    第11章 进程间通信(3)_共享内存
    第11章 进程间通信(2)_消息队列
    第11章 进程间通信(1)_管道
    第10章 线程控制(5)_多线程下的fork
    第10章 线程控制(4)_多线程下的信号
  • 原文地址:https://www.cnblogs.com/yangquanhui/p/4937510.html
Copyright © 2011-2022 走看看