C++ //练习 15.28 定义一个存放Quote对象的vector,将Bulk_quote对象传入其中。计算vector中所有元素总的net_price。
C++ Primer(第5版) 练习 15.28
练习 15.28 定义一个存放Quote对象的vector,将Bulk_quote对象传入其中。计算vector中所有元素总的net_price。
环境:Linux Ubuntu(云服务器)
工具:vim
代码块:
/*************************************************************************> File Name: ex15.28.cpp> Author: > Mail: > Created Time: Tus 25 Jul 2024 09:13:44 AM CST************************************************************************/#include<iostream>
#include<vector>
using namespace std;class Quote{public:Quote() = default;Quote(const std::string &book, double sales_price): bookNo(book), price(sales_price) {}std::string isbn() const { return bookNo; }virtual double net_price(std::size_t n) const { return n * price; }virtual ~Quote() = default;private:std::string bookNo;protected:double price = 0.0;
};class Disc_quote: public Quote{public:Disc_quote() = default;Disc_quote(const std::string &book, double price, std::size_t qty, double disc): Quote(book, price), quantity(qty), discount(disc) {}double net_price(std::size_t) const = 0;protected:std::size_t quantity = 0;double discount = 0.0;
};class Bulk_quote: public Disc_quote{public:Bulk_quote() = default;Bulk_quote(const std::string& book, double price, std::size_t qty, double disc): Disc_quote(book, price, qty, disc) {}double net_price(std::size_t) const override;
};double Bulk_quote::net_price(size_t cnt) const{if (cnt >= quantity){return cnt * (1 - discount) * price;}else{return cnt * price;}
}double print_total(ostream &os, const Quote &item, size_t n){double ret = item.net_price(n);os<<"ISBN: "<<item.isbn()<<" # sold: "<<n<<" total due: "<<ret<<endl;return ret;
}int main(){vector<Quote> basket = {Bulk_quote("0-101-13456-X", 10, 10, 0.5), Bulk_quote("0-102-34567-Y", 15, 20, 0.5), Bulk_quote("0-103-32467-X", 5, 30, 0.5)};double total_price = 0.0;for(const auto &b : basket){total_price += b.net_price(15);}cout<<total_price<<endl;return 0;
}
运行结果显示如下:

相关文章:
C++ //练习 15.28 定义一个存放Quote对象的vector,将Bulk_quote对象传入其中。计算vector中所有元素总的net_price。
C Primer(第5版) 练习 15.28 练习 15.28 定义一个存放Quote对象的vector,将Bulk_quote对象传入其中。计算vector中所有元素总的net_price。 环境:Linux Ubuntu(云服务器) 工具:vim 代码块&am…...
Midjourney绘画提示词精选
Midjourney绘画提示词精选 在探索Midjourney这一强大的AI绘画工具时,选择合适的提示词是创作出令人惊艳作品的关键。这些提示词不仅能够帮助Midjourney理解你的创作意图,还能引导它生成出符合你期望的图像。以下是对Midjourney绘画提示词的精选与解析&a…...
Kylin中的RBAC:为大数据安全加把锁
Kylin中的RBAC:为大数据安全加把锁 Apache Kylin是一个开源的分布式分析引擎,旨在为Hadoop平台提供快速的大数据量SQL查询能力。随着企业对数据安全和访问控制需求的增加,基于角色的访问控制(Role-Based Access Controlÿ…...
DDoS 攻击下的教育网站防护策略
随着互联网的普及,教育网站成为学生和教师获取信息、进行在线学习的重要平台。然而,这些网站也成为了网络攻击的目标,尤其是分布式拒绝服务(DDoS)攻击。本文将探讨DDoS攻击对教育网站的影响,并提出一系列有…...
Android13以太网静态IP不保存的问题
最近在做Amlogic T982的样机,关于以太网部分,系统Settings只有一个Ethernet的条目,没有其他任何信息,什么以太网mac地址,开关,IP地址,子网掩码,默认网关,dns, 设置代理&a…...
Redis 7.x 系列【31】LUA 脚本
有道无术,术尚可求,有术无道,止于术。 本系列Redis 版本 7.2.5 源码地址:https://gitee.com/pearl-organization/study-redis-demo 文章目录 1. 概述2. 常用命令2.1 EVAL2.2 SCRIPT LOAD2.3 EVALSHA2.4 SCRIPT FLUSH2.5 其他 3. …...
mysql中You can’t specify target table for update in FROM clause错误
mysql中You can’t specify target table for update in FROM clause错误 You cannot update a table and select directly from the same table in a subquery. mysql官网中有这句话,我们不能在一个语句中先在子查询中从某张表查出一些值,再update这张表…...
Linux Vim最全面的教程
Vim 是一个非常强大的文本编辑器,它在 Linux 环境中尤其受欢迎。Vim 支持高度定制,并且拥有丰富的功能,包括多级撤销、宏、脚本语言支持等。下面是关于 Vim 的一个较为全面的教程。 Vim 的启动 要启动 Vim,你可以在终端中输入 v…...
setsockopt选项对tcp速度
GPT-4 (OpenAI) 每个setsockopt调用都涉及到一个套接字描述符,一个指定网络层的常数(如IPPROTO_IP, IPPROTO_TCP, IPPROTO_IPV6, SOL_SOCKET等),一个指定需配置的选项的常数,一个指向配置值的指针,以及那个…...
HarmonyOS应用开发者高级认证,Next版本发布后最新题库 - 多选题序号3
基础认证题库请移步:HarmonyOS应用开发者基础认证题库 注:有读者反馈,题库的代码块比较多,打开文章时会卡死。所以笔者将题库拆分,单选题20个为一组,多选题10个为一组,题库目录如下,…...
bool数组的理解和应用[C++]
文章目录 bool数组的用法bool数组的定义声明bool数组的初始化访问和修改数组元素遍历数组 运用bool数组简单代码 在今天做题中发现了bool类不仅能用于函数类型还能用于数组类型,好奇查了查发现bool还有很多用处:基本变量,在枚举类型中会用到&…...
JavaScript模拟滑动手势
双击回到顶部 左滑动 右滑动 代码展示 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, initial-scale1.0" /><title>Gesture…...
Text Control 控件教程:使用 .NET C# 中的二维码和条形码增强文档
QR 码和条形码非常适合为文档和 PDF 文件增加价值,因为它们提供轻松的信息访问、验证信息、跟踪项目和提高交互性。条形码可以弥补纸质或数字人类可读文档与网络门户或网络应用程序中的数字信息之间的差距。大多数用户都熟悉 QR 码和条形码,它们在许多过…...
最新爆火的开源AI项目 | LivePortrait 本地安装教程
LivePortrait 本地部署教程,强大且开源的可控人像AI视频生成 1,准备工作,本地下载代码并准备环境,运行命令前需安装git 以下操作不要安装在C盘和容量较小的硬盘,可以找个大点的硬盘装哟 2,需要安装FFmp…...
揭秘Django与Neo4j:构建智能知识图谱的终极指南
揭秘Django与Neo4j:构建智能知识图谱的终极指南 前言 图是一种用于对象之间的成对关系进行建模的数学结构。 它由两个主要元素组成:节点和关系。 节点:节点可以看作是传统数据库中的记录。每个节点代表一个对象或实体,例如一个人或一个地方。节点按标签分类,这有助于根…...
项目一缓存商品
文章目录 概要整体架构流程技术细节小结 概要 因为商品是经常被浏览的,所以数据库的访问量就问大大增加,造成负载过大影响性能,所以我们需要把商品缓存到redis当中,因为redis是存在内存中的,所以效率会比MySQL的快. 整体架构流程 技术细节 我们在缓存时需要保持数据的一致性所…...
SEO与数据中心代理IP的结合能带来哪些便利?
本文将探讨将SEO与数据中心代理IP结合所带来的好处,以及如何利用这种组合来提升网站在搜索引擎中的排名和可见性。 1. 数据中心代理IP的作用和优势 数据中心代理IP指的是由数据中心提供的IP地址,用于隐藏真实服务器的位置和身份。与其他类型的代理IP相…...
《昇思25天学习打卡营第6天|ResNet50图像分类》
写在前面 从本次开始,接触一些上层应用。 本次通过经典的模型,开始本次任务。这里开始学习resnet50网络模型,应该也会有resnet18,估计18的模型速度会更快一些。 resnet 通过对论文的结论进行展示,说明了模型的功能&…...
Activiti 6 兼容openGauss数据库bytes类型不匹配
当前有个项目需要做国产调研,需要适配高斯数据库,项目启动的时候,提示column "bytes_" is type bytea but expression is of type blob byte_字段是act_ge_bytearray表的,openGauss里的类型是bytea,类型是匹…...
缓存技术:提升性能与效率的利器
在当今数字化时代,软件应用的性能与响应速度成为了衡量其成功与否的重要标准之一。随着数据量的爆炸性增长和用户需求的日益多样化,如何高效地处理这些数据并快速响应用户请求成为了软件开发中亟待解决的问题。缓存技术,作为提升系统性能、优…...
Live Server 5分钟快速上手:打造高效前端实时预览环境
Live Server 5分钟快速上手:打造高效前端实时预览环境 【免费下载链接】vscode-live-server Launch a development local Server with live reload feature for static & dynamic pages. 项目地址: https://gitcode.com/gh_mirrors/vs/vscode-live-server …...
3分钟搞定游戏模组:BepInEx插件框架终极入门指南
3分钟搞定游戏模组:BepInEx插件框架终极入门指南 【免费下载链接】BepInEx Unity / XNA game patcher and plugin framework 项目地址: https://gitcode.com/GitHub_Trending/be/BepInEx 想让你的游戏拥有无限可能?厌倦了游戏原有的玩法ÿ…...
别再傻傻分不清了!全桥、半桥、推挽电源拓扑,到底哪个更适合你的项目?
全桥、半桥与推挽拓扑实战选型指南:从理论到工程落地的关键抉择 在电力电子设计领域,拓扑结构的选择往往决定着整个项目的成败。当我第一次面对500W工业电源设计需求时,曾天真地认为"功率越大拓扑越高级"——这个错误认知让我付出了…...
从激光雷达到智能家居:深入浅出聊聊激光安全分类(Class 1/2/3/4)那点事儿
从激光雷达到智能家居:深入浅出聊聊激光安全分类(Class 1/2/3/4)那点事儿 激光技术正悄然渗透进我们生活的每个角落——从自动驾驶汽车的"眼睛"到智能门锁的指纹识别,从工业切割到医疗美容,这些看似毫不相关…...
【ElevenLabs葡语语音实战指南】:20年AI语音工程师亲测的5大本地化避坑清单(附实测TTS自然度评分92.7%)
更多请点击: https://intelliparadigm.com 第一章:ElevenLabs葡语语音的核心技术架构与本地化本质 ElevenLabs 的葡语语音合成并非简单地在英语模型上叠加音素映射,而是基于多语言联合训练框架构建的端到端神经语音系统,其核心依…...
智能家电语音交互核心技术:从麦克风阵列到语义理解的易用性设计
1. 项目概述:从“鸡肋”到“刚需”的智能语音交互几年前,当智能家电刚开始搭载语音模块时,很多用户的第一反应是“新鲜”,第二反应可能就是“鸡肋”。唤醒词不灵敏、指令识别率低、稍微带点口音就听不懂,更别提在嘈杂环…...
VSCode经典体验配置指南:从界面净化到键盘流工作流打造
1. 项目概述:为什么我们需要一个“经典体验”的VSCode?如果你和我一样,是个在代码编辑器里泡了十多年的老程序员,那你一定经历过从记事本、Notepad、Sublime Text到Visual Studio Code(VSCode)的漫长迁徙。…...
Attention Is All You Need:一篇论文,改变了整个世界
先讲一个场景。 2017年,谷歌大脑的一间办公室。 八个研究员,围坐在一起。 他们在讨论一个问题: 现有的翻译模型,为什么总是翻译得不够好? 长句子,翻译到后面,前面的意思就丢了。 复杂的语法结构…...
如何永久免费使用Cursor Pro:完整破解指南与工具详解
如何永久免费使用Cursor Pro:完整破解指南与工具详解 【免费下载链接】cursor-free-vip [Support 0.45](Multi Language 多语言)自动注册 Cursor Ai ,自动重置机器ID , 免费升级使用Pro 功能: Youve reached your tria…...
从功能测试到测试开发,薪资翻倍的秘密都在这里
当“点点点”撞上职业天花板 如果你是一名功能测试工程师,下面的场景你一定不陌生:每天对着需求文档编写用例,在测试环境里重复着相似的操作路径,偶尔发现一个边界值缺陷便觉得一天没有白费。然而,当你在招聘网站上搜…...
