贵州大学oj C++ 第五次 3.抽象的饮料类Drinks
记录学习日常 代码可能有错 大家多多包涵 有好的建议提出的话 我会开心接纳 初学阶段
定义一个抽象的饮料类Drinks,该类有一个数据成员brand(品牌),一个纯虚函数composition(成分),用于打印输出饮料的各种成分的含量。
(1)请完成Drinks类的定义,定义你认为必要的任何成员;
(2)请为Drinks类定义公有派生类Liquor(含酒精饮料)和Softdrinks(不含酒精饮料),Liquor类有alcoholicity(酒精含量)数据成员,Softdrinks类有sugarcontent(含糖量)数据成员。在这两个类中根据上述规则实现纯虚函数composition;
(3)请为Softdrinks类定义公有派生类Milktea(奶茶)和Fruitjuice(果汁),它们分别有milkcontent(牛奶含量)和juicecontent(果汁含量)数据成员。在这两个类中根据上述规则覆盖函数composition;
(4)在主函数中定义Drinks的指针并分别指向不同的派生类对象,调用composition输出不同饮料的成分含量。
main函数已经写好,请根据main函数的内容完成上述所有类的设计。
int main(){
Drinks *pd;
Liquor liquor("乐堡啤酒",0.045);
Softdrinks softdrinks("可口可乐",5.3);
Milktea milktea("阿萨姆奶茶",6.7,0.1);
Fruitjuice fruitjuice("汇源果汁",3.2,0.3);
pd=&liquor;
cout<<pd->getBrand()<<endl;
pd->composition();
pd=&softdrinks;
cout<<pd->getBrand()<<endl;
pd->composition();
pd=&milktea;
cout<<pd->getBrand()<<endl;
pd->composition();
pd=&fruitjuice;
cout<<pd->getBrand()<<endl;
pd->composition();
return 0;
}
样例输出
乐堡啤酒
酒精含量:4.5%
可口可乐
含糖量:每100ml5.3克
阿萨姆奶茶
含糖量:每100ml6.7克
牛奶含量:10%
汇源果汁
含糖量:每100ml3.2克
果汁含量:30%
#include<iostream>using namespace std;// 基类
class Drinks {
protected:string brand;
public://用于打印输出饮料的各种成分的含量的纯虚函数virtual void composition() = 0;virtual string getBrand() = 0;
};class Liquor : public Drinks {double alcoholicity;string brand;
public:Liquor() = default;Liquor(string n, double a) : brand(n), alcoholicity(a) {}string getBrand() { return brand; }void composition(){double a=alcoholicity*100;cout<<"酒精含量:"<<a<<"%"<<endl;}
};class Softdrinks : public Drinks {protected:string brand;double sugarcontent;public:Softdrinks() = default;Softdrinks(string n, double s) : brand(n), sugarcontent(s) {}string getBrand() { return brand; }void composition(){cout<<"含糖量:"<<"每100ml"<<sugarcontent<<"克"<<endl;}};class Milktea : public Softdrinks {double milkcontent, sugarcontent;string brand;public:Milktea() = default;Milktea(string n, double s, double m) : brand(n), sugarcontent(s), milkcontent(m) {}string getBrand() { return brand; }void composition(){cout<<"含糖量:"<<"每100ml"<<sugarcontent<<"克"<<endl;cout<<"牛奶含量:"<<milkcontent*100<<"%"<<endl;}};class Fruitjuice : public Softdrinks {double juicecontent,sugarcontent;string brand;public:Fruitjuice()=default;Fruitjuice(string n,double s,double j):brand(n),sugarcontent(s),juicecontent(j){}string getBrand() { return brand; }void composition(){cout<<"含糖量:"<<"每100ml"<<sugarcontent<<"克"<<endl;cout<<"果汁含量:"<<juicecontent*100<<"%"<<endl;}};
贵州大学oj C++ 第五次 3.抽象的饮料类Drinks相关推荐
- 贵州大学oj C++ 第五次 12.房产税费计算
记录学习 定义一个抽象的房产类HouseProperty,该类有两个数据成员:area(double型,用于描述房产的面积)和unitPrice(double型,用于描述房产的每平方米单价).该类还 ...
- 贵州大学oj C++ 第五次 11.自助餐计费
记录学习日常 代码可能有错 大家多多包涵 有好的建议提出的话 我会开心接纳 初学阶段 某自助餐厅提供A.B.C三种套餐服务,原价分别为100元,120元和150元.对于不同顾客有不同的优惠规则如下: ...
- C++初步之核心编程篇五:多态与虚函数类
C++初步之核心编程篇五:多态与虚函数类 文章目录 C++初步之核心编程篇五:多态与虚函数类 1. 多态的概要 2. 多态案例一-计算器类 3. 纯虚函数和抽象类 4. 多态案例二-制作饮品 5. 虚 ...
- 【设计模式】享元模式 实现 ( 实现流程 | 抽象享元类 | 具体享元类 | 享元工厂 | 用户调用 | 代码模板 )
文章目录 I . 享元模式 实现流程 II . 享元模式 抽象享元类 III . 享元模式 具体享元类 IV . 享元模式 享元工厂 V . 享元模式 用户调用 I . 享元模式 实现流程 1 . 定 ...
- java中手动装入新类到类装饰器_关于java:抽象装饰器类中的功能而不是装饰器...
我目前正在阅读<Head First Design Patterns>一书,在"Decorator"一章中有以下示例: 在书中,conditionmentDecorat ...
- *抽象对象的类解释 数解释和真值解释---- 布尔逻辑之五****
*抽象对象的类解释 数解释和真值解释 布尔逻辑之五 布尔在他的布尔逻辑之中,给出了全与无两个类别,但其后,他又相继给出了这对同样观念的另外两种解释.这个全与无究竟是个什么东西,清楚明白地给出描述不是一 ...
- 定义一个抽象的Role类 有姓名 年龄 性别等成员变量 .......
/** 6:定义一个抽象的"Role"类 有姓名 年龄 性别等成员变量 1. 要求尽可能隐藏所有变量(能够私有就私有,能够保护就不要公有) 再通过GetXXX( ...
- 【设计一个抽象的形状类Shape,方法:求周长和求面积】
[设计一个抽象的形状类Shape,方法:求周长和求面积.shape类的子类:Rect(矩形),Circle(圆形).Rect类的子类:Square(正方形)不同的子类会有不同的计算周长和面积的方法.] ...
- FFmpeg开发(五)——Qt视频播放器之封装FFmpeg类(参考了暴风影音、迅雷影音)
FFmpeg开发(五)--Qt视频播放器之封装FFmpeg类(参考了暴风影音.迅雷影音) 上一篇介绍了,使用Qt和FFmpeg写的播放器.页面大家可以点进去查看和下载. FFmpeg开发(四)--Qt ...
最新文章
- QT的QStyleOption类的使用
- 高智商孩子14个独有的特点
- 第四届数据科学国际会议(ICDS2017)将于5月在上海召开
- Qt多线程-QThreadPool线程池与QRunnable
- 系统学习机器学习之模型选择
- testlink界面优化_Testlink 太老了,测试用例管理有没有什么好工具推荐?
- excel正在等待某个应用程序以完成对象链接与嵌入操作_ES32 嵌入式开发从这里开始...
- centos ipv6 网卡_centOS添加ipv6支持(仅限已分配ipv6地址和网关)
- Exchange2013DAG环境搭建
- 域名指向主机IP地址,通过域名:8080才能访问网站,去掉后面的8080;或者其他的端口号,直接使用域名访问网站
- Verilog学习之路(11)—事件控制(时间延迟)
- 从安防监控走进手机VR 红外线LED翻身
- 第二十二章 opengl之高级OpenGL(几何着色器)
- 2023最新SSM计算机毕业设计选题大全(附源码+LW)之java校园竞赛管理系统设计与实现hyr9b
- Jetpack Compose——Icon(图标)的使用
- Windows Server 远程桌面 SSL/TLS 漏洞修复
- 数据分析 --- 收集数据的原则
- Linux移动机器人硬件部分,基于ORB-SLAM的移动机器人嵌入式实现与优化
- java开发的颠覆者epub,创业颠覆者-陈景畑 翟顺[6寸pdf mobi epub kindle版].pdf
- 趋势科技协助FBI破获大型跨国网络犯罪案 瓦解超过400万Botnet 殭尸大军