解析《c++primer》中的Sales_item.h文件
来源:互联网 发布:苹果远程桌面连接软件 编辑:程序博客网 时间:2024/06/05 08:09
#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;elses = Sales_item();return in;}inline ostream& operator<<(ostream &out,const Sales_item &s){out << s.isbn << "\t" <<s.units_sold << "\t" << s.revenue << "\t" << s.avg_price();return out;}inline double Sales_item::avg_price() const{if(units_sold)return revenue/units_sold;elsereturn 0;}#endif
阅读全文
0 0
- 解析《c++primer》中的Sales_item.h文件
- C++ Primer 4 Edition 中的Sales_item.h文件
- C++ Primer中Sales_item.h代码解析
- 《C++Primer》中作者讲述案例使用的Sales_item.h文件
- C++ Primer 第4版中的Sales_item.h源码
- C++primer中第一章中Sales_item.h的代码
- C++Primer 中的Sales_items.h头文件
- Sales_item.h (C++ Primer 第五版)
- C++ primer plus Sales_item.h源码
- C++primer习题编写Sales_item类
- C Primer 第四版 Sales_item 类
- sales_item.h
- Sales_item.h
- Sales_item.h .
- Sales_item.h
- Sales_item.h
- C++ Primer 第五版第一章Sales_item.h源码
- 【C++ Primer】1.5类简介上Sales_item.h
- clang忽略警告
- MySQL中select * for update锁表的问题 由于InnoDB预设是Row-Level Lock,所以只有「明确」的指定主键,MySQL才会执行Row lock (只锁住被选取的资料例
- spring boot启动报错:No active profile set, falling back to default profiles: default
- c 取整方法
- 一种手感很好的18650电池
- 解析《c++primer》中的Sales_item.h文件
- Spring AOP详解
- 关于接下来的学习计划(11月-次年1月)
- 记录Java的验证码生成工具类
- HDU 1176 免费馅饼
- 分别使用PreparedStatement和Statement对mysql数据库进行创建表,增加数据,查询数据和删除数据过程
- 递归函数的使用
- 常见数据结构与算法整理总结
- [thinkPHP5项目实战_24]前台页面导航栏目调用