C++primer中第一章中Sales_item.h的代码
2012-10-17 19:07
537 查看
新买的C++primer中ISBN好竟然登不上书中给的网站,所需Sales_item.h网上查找到,附录如下……
同时欢迎提出宝贵意见,以帮助我改进,不胜感激!!!
——桑海整理
#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 << "\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; else return 0; } #endif
同时欢迎提出宝贵意见,以帮助我改进,不胜感激!!!
——桑海整理
相关文章推荐
- C++primer(第五版)第一章中的sales_item.h
- 解析《c++primer》中的Sales_item.h文件
- C++ Primer 第五版第一章Sales_item.h源码
- C++ Primer中Sales_item.h代码解析
- C++ Primer 第5版 第一章书店程序Sales_item问题
- 学习C++primer(一)(加入头文件Sales_item.h)
- <C++ Primer_5th>第一章用到的头文件<Sales_item.h>
- 《C++Primer》中作者讲述案例使用的Sales_item.h文件
- C++primer 第一章网站上的代码
- Oracle 第一章 上课代码
- 用Groovy思考 第一章 用Groovy简化Java代码
- 用Groovy思考 第一章 用Groovy简化Java代码
- [翻译]编写高性能 .NET 代码 第一章:性能测试与工具 -- 选择什么来衡量
- 《大道至简》第一章读后感Java伪代码
- 《编写可读代码的艺术》读书文摘--第一章 代码应当易于理解
- [翻译]编写高性能 .NET 代码 第一章:性能测试与工具 -- 平均值 vs 百分比
- Head First Python---------(一)第一章(初识Python__人人都爱列表)、第二章(共享你的代码__函数模块)、第三章(文件与异常__处理错误)
- [翻译] Effective C++, 3rd Edition, Item 29: 争取 exception-safe code(异常安全代码)(下)
- Recyclerview隐藏单个item代码(经测试有效)!
- 算法竞赛入门经典 第一章 上机练习(C++代码)