C++primer(第五版)Sales_item.h头文件
C++primer(第五版)1.51练习章节需要有一个Sales_item类,但是给的网站找不到,直接复制下面就好咯:
- #ifndef SALESITEM_H
- #define SALESITEM_H
- #include <iostream>
- #include <string>
- class Sales_item
- {
- public:
- Sales_item(const std::string &book):isbn(book),units_sold(),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(),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 ;
- }
- #endif
VS添加时直接在头文件文件夹内添加 .h 文件然后Copy代码。
在CPP文件中记得使用 #include"Sales_item.h" 引用头文件
C++primer(第五版)Sales_item.h头文件的更多相关文章
- C++PRIMER第五版练习题答案第一章
C++PRIMER第五版练习题答案第一章 应该有很多小伙伴和我一样,闲来无事买了本C++的书自己啃,课后的练习题做的很揪心,这里我分享下我写的答案,希望能帮助到你,提供源码,就不跑了哈,毕竟现在是第一 ...
- 实验楼课程管理程序-深入学习《C++ Primer第五版》实验报告&学习笔记1
本片博客为实验楼的训练营课程深入学习<C++ Primer第五版>的实验报告和学习笔记. 原课程地址为:https://www.shiyanlou.com/courses/405# 原文出 ...
- C++ 11 从C++ primer第五版的学习笔记
1. auto (page107) auto 推断会忽略const const int ci = i, & cr = ci; auto b = ci; // b is an int (to ...
- stdlib.h 头文件
stdlib 头文件即standard library标准库头文件.stdlib.h里面定义了五种类型.一些宏和通用工具函数. 类型例如size_t.wchar_t.div_t.ldiv_t和lldi ...
- jni.h头文件详解二
作者:左少华 博客:http://blog.csdn.net/shaohuazuo/article/details/42932813 转载请注明出处:http://blog.csdn.net/shao ...
- 【转】 jni.h头文件详解(二)
原文网址:http://blog.csdn.net/shaohuazuo/article/details/42932813 作者:左少华 博客:http://blog.csdn.net/shaohua ...
- linux内核中链表代码分析---list.h头文件分析(一)【转】
转自:http://blog.chinaunix.net/uid-30254565-id-5637596.html linux内核中链表代码分析---list.h头文件分析(一) 16年2月27日17 ...
- 如何使用微软提供的TCHAR.H头文件?
转载:https://www.cnblogs.com/flyingspark/archive/2012/03/16/2399788.html 如何使用微软提供的TCHAR.H头文件? 如果你现在写的代 ...
- 【C】.h头文件的重复包含问题
.h头文件存在的意义就是封装,可以方便多个.c源文件使用,但要防止.h头文件被同一个.c源文件多次包含. 例如, io.h文件 #ifndef _IO_H_ #define _IO_H_ #defin ...
随机推荐
- php通过单例模式使一个类只能创建一个对象。
单例模式也就是一个类只能创建出一个对象 首先你要知道它的基本思想为:三私一公! 何为三私一公? 1(私).防止用户通过构造方法创建对象,因此私有化构造方法. 2(公).创建一个公共静态函数用来进入 ...
- Vue2.0 【第二季】第9节 Component 标签
目录 Vue2.0 [第二季]第9节 Component 标签 第9节 Component 标签 1.我们先在构造器外部定义三个不同的组件,分别是componentA,componentB和compo ...
- Button相关设置
2020-03-11 每日一例第4天 1.添加按钮1-6,并修改相应的text值: 2.窗体Load事件加载代码: private void Form1_Load(object sender, Ev ...
- Scikit-Learn 源码研读 (第二期)基类的实现细节
目录 BaseEstimator `get_params` `set_params` ClassifierMixin RegressorMixin 检查传入的对象 检查样本数和权重系数 实现$R^2$ ...
- linux redis安装 5.0.2
参看:https://www.cnblogs.com/limit1/p/9045183.html 1.获取redis资源 wget http://download.redis.io/releases/ ...
- Javascript的document对象
对象属性 document.title //设置文档标题等价于HTML的<title>标签 document.bgColor / ...
- Python-列表做的购物车小程序
一.流程为,输入你有多少钱,然后循环购买商品,输入‘q’ 退出程序 goods=[['苹果',6500],['华为',4999],['小米',2999],['oppo',3599]] #初始化列表,填 ...
- Centos7配置IP地址和DNS
目录 一.查看IP地址 1.ifconfig命令 2.ip addr命令 二.配置网卡 1.动态IP地址 2.静态IP地址 3.重启网卡 三.注意事项 四.本地虚拟机设置静态IP后不能上网的解决方法 ...
- shellcode
msf > use windows/exec msf > set CMD calc.exe msf > set EXITFUNC thread msf > generate - ...
- 洛谷2212Watering the Fields S 最小生成树
题目链接:https://www.luogu.com.cn/problem/P2212 几乎是Kruskal裸题,但是建n*(n-1)条边给我T了俩点,后来我发现只要C(n,2)条边就可以,因为假设( ...