记录学习日常 代码可能有错 大家多多包涵 有好的建议提出的话 我会开心接纳 初学阶段

定义一个抽象的饮料类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相关推荐

  1. 贵州大学oj C++ 第五次 12.房产税费计算

    ​记录学习 定义一个抽象的房产类HouseProperty,该类有两个数据成员:area(double型,用于描述房产的面积)和unitPrice(double型,用于描述房产的每平方米单价).该类还 ...

  2. 贵州大学oj C++ 第五次 11.自助餐计费

    记录学习日常 代码可能有错 大家多多包涵 有好的建议提出的话 我会开心接纳 初学阶段 ​某自助餐厅提供A.B.C三种套餐服务,原价分别为100元,120元和150元.对于不同顾客有不同的优惠规则如下: ...

  3. C++初步之核心编程篇五:多态与虚函数类

    C++初步之核心编程篇五:多态与虚函数类 文章目录 C++初步之核心编程篇五:多态与虚函数类 1. 多态的概要 2. 多态案例一-计算器类 3. 纯虚函数和抽象类 4. 多态案例二-制作饮品 5. 虚 ...

  4. 【设计模式】享元模式 实现 ( 实现流程 | 抽象享元类 | 具体享元类 | 享元工厂 | 用户调用 | 代码模板 )

    文章目录 I . 享元模式 实现流程 II . 享元模式 抽象享元类 III . 享元模式 具体享元类 IV . 享元模式 享元工厂 V . 享元模式 用户调用 I . 享元模式 实现流程 1 . 定 ...

  5. java中手动装入新类到类装饰器_关于java:抽象装饰器类中的功能而不是装饰器...

    我目前正在阅读<Head First Design Patterns>一书,在"Decorator"一章中有以下示例: 在书中,conditionmentDecorat ...

  6. *抽象对象的类解释 数解释和真值解释---- 布尔逻辑之五****

    *抽象对象的类解释 数解释和真值解释 布尔逻辑之五 布尔在他的布尔逻辑之中,给出了全与无两个类别,但其后,他又相继给出了这对同样观念的另外两种解释.这个全与无究竟是个什么东西,清楚明白地给出描述不是一 ...

  7. 定义一个抽象的Role类 有姓名 年龄 性别等成员变量 .......

    /** 6:定义一个抽象的"Role"类 有姓名 年龄 性别等成员变量      1. 要求尽可能隐藏所有变量(能够私有就私有,能够保护就不要公有)      再通过GetXXX( ...

  8. 【设计一个抽象的形状类Shape,方法:求周长和求面积】

    [设计一个抽象的形状类Shape,方法:求周长和求面积.shape类的子类:Rect(矩形),Circle(圆形).Rect类的子类:Square(正方形)不同的子类会有不同的计算周长和面积的方法.] ...

  9. FFmpeg开发(五)——Qt视频播放器之封装FFmpeg类(参考了暴风影音、迅雷影音)

    FFmpeg开发(五)--Qt视频播放器之封装FFmpeg类(参考了暴风影音.迅雷影音) 上一篇介绍了,使用Qt和FFmpeg写的播放器.页面大家可以点进去查看和下载. FFmpeg开发(四)--Qt ...

最新文章

  1. QT的QStyleOption类的使用
  2. 高智商孩子14个独有的特点
  3. 第四届数据科学国际会议(ICDS2017)将于5月在上海召开
  4. Qt多线程-QThreadPool线程池与QRunnable
  5. 系统学习机器学习之模型选择
  6. testlink界面优化_Testlink 太老了,测试用例管理有没有什么好工具推荐?
  7. excel正在等待某个应用程序以完成对象链接与嵌入操作_ES32 嵌入式开发从这里开始...
  8. centos ipv6 网卡_centOS添加ipv6支持(仅限已分配ipv6地址和网关)
  9. Exchange2013DAG环境搭建
  10. 域名指向主机IP地址,通过域名:8080才能访问网站,去掉后面的8080;或者其他的端口号,直接使用域名访问网站
  11. Verilog学习之路(11)—事件控制(时间延迟)
  12. 从安防监控走进手机VR 红外线LED翻身
  13. 第二十二章 opengl之高级OpenGL(几何着色器)
  14. 2023最新SSM计算机毕业设计选题大全(附源码+LW)之java校园竞赛管理系统设计与实现hyr9b
  15. Jetpack Compose——Icon(图标)的使用
  16. Windows Server 远程桌面 SSL/TLS 漏洞修复
  17. 数据分析 --- 收集数据的原则
  18. Linux移动机器人硬件部分,基于ORB-SLAM的移动机器人嵌入式实现与优化
  19. java开发的颠覆者epub,创业颠覆者-陈景畑 翟顺[6寸pdf mobi epub kindle版].pdf
  20. 趋势科技协助FBI破获大型跨国网络犯罪案 瓦解超过400万Botnet 殭尸大军

热门文章

  1. 做好小红书推广的三大要点解析_云媒易
  2. 如何查看自己电脑的显存
  3. 微软ad域服务器 管理用户,管理 Azure AD 域服务的 DNS | Microsoft Docs
  4. 简化访问接口方便跳到web浏览器
  5. 自定义PMD检测的类型集合(详解)
  6. 文章生成器-原创文章生成器
  7. gff文件_如何提取gff文件中的基因注释信息
  8. 乘用车前装视觉DMS搭载率不到3%,3D ToF进入量产周期
  9. 海马汽车经销商管理系统技术解析(十九)新增调拨
  10. Soot学习(1) --- 下载和导入项目