《C++ Primer》第一章的 Sales_item.h头文件源码

Sales_item.h不是C++自带的,需要自己安装,这个库作者已经写好了,
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;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

注意,Sales_item.h的储存路径要和源代码的储存路径一致。这样,源代码的头文件才可以访问这个类。

如何安装头文件?

  1. DevC++如何安装自定义头文件并使用

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/311451.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

icoding复习7, 8

icoding复习7 哈希,AVL 查找 必考点!!! 1. 哈希表创建 typedef enum{ HASH_OK, HASH_ERROR, HASH_ADDED, HASH_REPLACED_VALUE, HASH_ALREADY_ADDED, HASH_DELETED, HASH_NOT_FOUND, } HASH_RESULT; typedef struct __HashEntry HashEntry; struc…

python加载模型包占用内存多大_加载pickle python对象会占用大量内存

我有一个python的pickle对象,它生成一个180 Mb的文件.当我取消它时,内存使用量会爆炸到2或3Gb.你有类似的经历吗&#xff1f;这是正常的吗&#xff1f;对象是包含字典的树&#xff1a;每个边是一个字母,每个节点都是一个潜在的单词.因此,要存储一个单词,您需要的边数与该单词的…

《C++ Primer》1.52节练习

练习1.23 #include <iostream> #include "Sales_item.h"using namespace std;int main() {Sales_item trans1, trans2;cout << "请输入若干销售记录:" << endl;if (cin >> trans1) {int num 1;while (cin >> trans2)if (t…

ASP.NET Core 反向代理部署知多少

引言最近在折腾统一认证中心&#xff0c;看到开源项目[IdentityServer4.Admin&#xff1a;https://github.com/skoruba/IdentityServer4.Admin]集成了IdentityServer4和管理面板&#xff0c;就直接拿过来用了。在尝试Nginx部署时遇到了诸如虚拟目录映射&#xff0c;请求头超长、…

函数传参string_JavaScript 高阶函数入门浅析

原文&#xff1a;https://www.freecodecamp.org/news/a-quick-intro-to-higher-order-functions-in-javascript-1a014f89c6b/译者&#xff1a;jingruzhang校对者&#xff1a;acusp高阶函数高阶函数可以接收函数作为参数&#xff0c;同时也可以返回一个新的函数。高阶函数之所以…

all()与any()

all():当可迭代对象为空时返回True。或者当可迭代对象中是否所有值都为True&#xff0c;所有值都为True,则返回True。否则返回False。any():当可迭代对象为空时返回False。或者当可迭代对象中是否存在一个为True的值&#xff0c;若存在&#xff0c;返回True,否则返回False 示例…

.NET Core开发实战(第13课:配置绑定:使用强类型对象承载配置数据)--学习笔记...

13 | 配置绑定&#xff1a;使用强类型对象承载配置数据要点&#xff1a;1、支持将配置值绑定到已有对象2、支持将配置值绑定到私有属性上继续使用上一节代码首先定义一个类作为接收配置的实例class Config {public string Key1 { get; set; }public bool Key5 { get; set; }pub…

Python--第3次平时作业

目录 一、单项选择题 二、程序填空题 三、所有测试代码如下: 一、单项选择题 题号 1 2 3 4 5 6 7 8 9 10 答案 C A A C C D D D D C 题号 11 12 13 14 15 16 17 18 19 20 答案 A A C C B C A C B A 题号 21 22 23 24 25 …

工业互联网白皮书_发布|《工业互联网平台安全白皮书(2020)》发布

12月4日&#xff0c;2020年中国工业信息安全大会暨全国工控安全深度行(京津冀站)在北京国际会议中心举行。大会由国家工业信息安全发展研究中心、工业信息安全产业发展联盟主办&#xff0c;以“贯彻总体国家安全观&#xff0c;把牢工控安全基准线”为主题。会上&#xff0c;国家…

UVA - 514 Rails-栈

某城市有一个火车站&#xff0c;铁轨铺设如图6-1所示。 有n节车厢从A方向驶入车站&#xff0c;按进站顺 序编号为1&#xff5e;n。 你的任务是判断是否能让它们按照某种特定的顺序进入B方向的铁轨并驶出 车站。 例如&#xff0c;出栈顺序(5 4 1 2 3)是不可能的&#xff0c;但(5…

全局思维

在这个复杂多变的时代&#xff0c;是时候提升我们的思维了&#xff0c;树立大局意识&#xff0c;在把握空间纵轴线和时间水平线中思考和谋划大局。全局思维能力&#xff0c;蕴含着从全局的、长远的、战略的高度来分析问题和解决问题的能力&#xff1b;是善于从大处着眼、小处着…

python中函数的参数类型( 位置参数、关键字参数、默认值参数和可变长度参数)

目录 位置参数: 关键字参数: 默认值参数: 可变长度参数: 1.元组可变长度参数 : 2.字典可变长度参数: 附上练习代码: 位置参数: 实参与形参个数完全相同,按位置按顺序将实参传递给形参 def f(x, y):print(x, y) f(2, 3) 2, 3 关键字参数: 在函数调用中使用关键字参数&…

python分布式存储文件_python如何分布式存储文件的方法

想了很久&#xff0c;还是跟大家聊一聊关于分布式吧&#xff0c;只是因为大家在编写代码&#xff0c;填充内容时候&#xff0c;最多肯定是涉及文字以及图片&#xff0c;因此对于这些内容后期做代码存储肯定至关重要&#xff0c;没有任何一个用户会直接看代码来认知你的产品&…

UVA-11988 悲剧文本-静态链表

你有一个破损的键盘。键盘上的所有键都可以正常工作&#xff0c;但有时Home键或者End键会自 动按下。你并不知道键盘存在这一问题&#xff0c;而是专心地打稿子&#xff0c;甚至连显示器都没打开。当你 打开显示器之后&#xff0c;展现在你面前的是一段悲剧的文本。你的任务是在…

ASP.NET Core Razor 视图预编译、动态编译

0x01 前言ASP.NET Core在默认发布情况下&#xff0c;会启动预编译将试图编译成xx.Views.dll,也许在视图中打算修改一处很细小的地方我们需要再重新编译视图进行发布。下面我将从 ASP.NET Core 3 之前版本到 ASP.NET Core 3X 之后版本的一个配置列下下方供大家参考。0x02 预编译…

最大公约数,最小公倍数,质因式分解

目录 简单代码算出最大公约数,最小公倍数: 辗转相除法得到最大公约数: 两数相乘倒序最小公倍数: 分解质因式, 打印输出, 并且存到列表 主程序: 由质因式得到最小公倍数: 简单代码算出最大公约数,最小公倍数: # 最大公约数和最小公倍数 a int(input(please enter 1st num:)…

群晖python套件包_利用群晖Docker安装ubuntu16.04搭建python网站服务器(部署篇)

在帖子《利用群晖Docker安装ubuntu16.04搭建python网站服务器(安装篇)(地址&#xff1a;http://www.cirdown.com:81/thread-185-1-1.html)》中介绍了在群晖docker中如何安装和配置ubuntu容器&#xff0c;那么服务器系统有了&#xff0c;这篇我们就来讲部署篇&#xff0c;因为我…

《C++ Primer》2.1.2节练习

练习2.3 #include <iostream> using namespace std;int main() {unsigned u 10, u2 42;cout << u2 - u << endl;cout << u - u2 << endl;int i 10, i2 42;cout << i2 - i << endl;cout << i - i2 << endl;cout <…

从未来看 C#

前言如今 C# 虽然发展到了 8.0 版本&#xff0c;引入了诸多的函数式特性&#xff0c;但其实在 C# 未来的规划当中&#xff0c;还有很多足以大规模影响现有 C# 代码结构和组成的特性&#xff0c;本文中将会对就重要的特性进行介绍&#xff0c;并用代码示例展示这些特性。以下特性…