C++primer(第五版)1.51练习章节需要有一个Sales_item类,但是给的网站找不到,直接复制下面就好咯:

  1. #ifndef SALESITEM_H
  2. #define SALESITEM_H
  3. #include <iostream>
  4. #include <string>
  5.  
  6. class Sales_item
  7. {
  8. public:
  9. Sales_item(const std::string &book):isbn(book),units_sold(),revenue(0.0){}
  10. Sales_item(std::istream &is){ is >> *this;}
  11. friend std::istream& operator>>(std::istream &,Sales_item &);
  12. friend std::ostream& operator<<(std::ostream &,const Sales_item &);
  13. public:
  14. Sales_item & operator+=(const Sales_item&);
  15. public:
  16. double avg_price() const;
  17. bool same_isbn(const Sales_item &rhs)const
  18. {
  19. return isbn == rhs.isbn;
  20. }
  21. Sales_item():units_sold(),revenue(0.0){}
  22. public:
  23. std::string isbn;
  24. unsigned units_sold;
  25. double revenue;
  26. };
  27.  
  28. using std::istream;
  29. using std::ostream;
  30. Sales_item operator+(const Sales_item &,const Sales_item &);
  31. inline bool operator==(const Sales_item &lhs,const Sales_item &rhs)
  32. {
  33. return lhs.units_sold == rhs.units_sold && lhs.revenue == rhs.revenue && lhs.same_isbn(rhs);
  34. }
  35. inline bool operator!=(const Sales_item &lhs,const Sales_item &rhs)
  36. {
  37. return !(lhs == rhs);
  38. }
  39.  
  40. inline Sales_item & Sales_item::operator +=(const Sales_item &rhs)
  41. {
  42. units_sold += rhs.units_sold;
  43. revenue += rhs.revenue;
  44. return *this;
  45. }
  46. inline Sales_item operator+(const Sales_item &lhs,const Sales_item &rhs)
  47. {
  48. Sales_item ret(lhs);
  49. ret += rhs;
  50. return ret;
  51. }
  52. inline istream& operator>>(istream &in,Sales_item &s)
  53. {
  54. double price;
  55. in >> s.isbn >> s.units_sold >> price;
  56. if(in)
  57. s.revenue = s.units_sold * price;
  58. else
  59. s = Sales_item();
  60. return in;
  61. }
  62. inline ostream& operator<<(ostream &out,const Sales_item &s)
  63. {
  64. out << s.isbn << "\t" <<s.units_sold << "\t" << s.revenue << "\t" << s.avg_price();
  65. return out;
  66. }
  67. inline double Sales_item::avg_price() const
  68. {
  69. if(units_sold)
  70. return revenue/units_sold;
  71. else
  72. return ;
  73. }
  74. #endif

VS添加时直接在头文件文件夹内添加 .h 文件然后Copy代码。

在CPP文件中记得使用  #include"Sales_item.h"  引用头文件

C++primer(第五版)Sales_item.h头文件的更多相关文章

  1. C++PRIMER第五版练习题答案第一章

    C++PRIMER第五版练习题答案第一章 应该有很多小伙伴和我一样,闲来无事买了本C++的书自己啃,课后的练习题做的很揪心,这里我分享下我写的答案,希望能帮助到你,提供源码,就不跑了哈,毕竟现在是第一 ...

  2. 实验楼课程管理程序-深入学习《C++ Primer第五版》实验报告&学习笔记1

    本片博客为实验楼的训练营课程深入学习<C++ Primer第五版>的实验报告和学习笔记. 原课程地址为:https://www.shiyanlou.com/courses/405# 原文出 ...

  3. C++ 11 从C++ primer第五版的学习笔记

    1. auto (page107) auto 推断会忽略const   const int ci = i, & cr = ci; auto b = ci; // b is an int (to ...

  4. stdlib.h 头文件

    stdlib 头文件即standard library标准库头文件.stdlib.h里面定义了五种类型.一些宏和通用工具函数. 类型例如size_t.wchar_t.div_t.ldiv_t和lldi ...

  5. jni.h头文件详解二

    作者:左少华 博客:http://blog.csdn.net/shaohuazuo/article/details/42932813 转载请注明出处:http://blog.csdn.net/shao ...

  6. 【转】 jni.h头文件详解(二)

    原文网址:http://blog.csdn.net/shaohuazuo/article/details/42932813 作者:左少华 博客:http://blog.csdn.net/shaohua ...

  7. linux内核中链表代码分析---list.h头文件分析(一)【转】

    转自:http://blog.chinaunix.net/uid-30254565-id-5637596.html linux内核中链表代码分析---list.h头文件分析(一) 16年2月27日17 ...

  8. 如何使用微软提供的TCHAR.H头文件?

    转载:https://www.cnblogs.com/flyingspark/archive/2012/03/16/2399788.html 如何使用微软提供的TCHAR.H头文件? 如果你现在写的代 ...

  9. 【C】.h头文件的重复包含问题

    .h头文件存在的意义就是封装,可以方便多个.c源文件使用,但要防止.h头文件被同一个.c源文件多次包含. 例如, io.h文件 #ifndef _IO_H_ #define _IO_H_ #defin ...

随机推荐

  1. php通过单例模式使一个类只能创建一个对象。

    单例模式也就是一个类只能创建出一个对象 首先你要知道它的基本思想为:三私一公! 何为三私一公?   1(私).防止用户通过构造方法创建对象,因此私有化构造方法. 2(公).创建一个公共静态函数用来进入 ...

  2. Vue2.0 【第二季】第9节 Component 标签

    目录 Vue2.0 [第二季]第9节 Component 标签 第9节 Component 标签 1.我们先在构造器外部定义三个不同的组件,分别是componentA,componentB和compo ...

  3. Button相关设置

    2020-03-11 每日一例第4天 1.添加按钮1-6,并修改相应的text值:  2.窗体Load事件加载代码: private void Form1_Load(object sender, Ev ...

  4. Scikit-Learn 源码研读 (第二期)基类的实现细节

    目录 BaseEstimator `get_params` `set_params` ClassifierMixin RegressorMixin 检查传入的对象 检查样本数和权重系数 实现$R^2$ ...

  5. linux redis安装 5.0.2

    参看:https://www.cnblogs.com/limit1/p/9045183.html 1.获取redis资源 wget http://download.redis.io/releases/ ...

  6. Javascript的document对象

    对象属性 document.title                 //设置文档标题等价于HTML的<title>标签 document.bgColor               / ...

  7. Python-列表做的购物车小程序

    一.流程为,输入你有多少钱,然后循环购买商品,输入‘q’ 退出程序 goods=[['苹果',6500],['华为',4999],['小米',2999],['oppo',3599]] #初始化列表,填 ...

  8. Centos7配置IP地址和DNS

    目录 一.查看IP地址 1.ifconfig命令 2.ip addr命令 二.配置网卡 1.动态IP地址 2.静态IP地址 3.重启网卡 三.注意事项 四.本地虚拟机设置静态IP后不能上网的解决方法 ...

  9. shellcode

    msf > use windows/exec msf > set CMD calc.exe msf > set EXITFUNC thread msf > generate - ...

  10. 洛谷2212Watering the Fields S 最小生成树

    题目链接:https://www.luogu.com.cn/problem/P2212 几乎是Kruskal裸题,但是建n*(n-1)条边给我T了俩点,后来我发现只要C(n,2)条边就可以,因为假设( ...