c++ / day04

1. 整理思维导图

2. 全局变量,int monster = 10000;定义英雄类hero,受保护的属性string name,int hp,int attck;公有的无参构造,有参构造,虚成员函数 void Atk(){blood-=0;},法师类继承自英雄类,私有属性 int ap_atk=50;重写虚成员函数void Atk(){blood-=(attck+ap_atk);};射手类继承自英雄类,私有属性 int ac_atk = 100;重写虚成员函数void Atk(){blood-=(attck+ac_atk);}实例化类对象,判断怪物何时被杀死。(能写多少写多少)

代码

#include <iostream>using namespace std;int blood =10000;class Hero
{protected:string name;int attck;public://constructor without paramHero(){}//constructor with paramHero(string name, int attck):name(name), attck(attck){}virtual void atk(){cout << "Hero attck" <<endl;blood -= 0;}
};class Mage: public Hero
{int ap_atk=50;
public:Mage(string name, int attck):Hero(name, attck){cout << "Mage constructor with 4 params" <<endl;}void atk(){cout << "Mage attck" <<endl;blood -=(attck + ap_atk);}};class Archer: public Hero
{int ac_atk=100;public:Archer(string name,  int attck):Hero(name, attck){cout << "Archer constructor with 4 params" <<endl;}void atk(){cout << "Archer attck" <<endl;blood -= attck+ac_atk;}};int main()
{Mage mage("Tang seng", 100);Archer archer("Wu kong", 200);Hero *pm = &mage; //parent point -->childHero *pa = &archer; //parent point -->childint count_m = 0;int count_a = 0;while(1){pm->atk();count_m++;if(blood <=0){break;}pa->atk();count_a++;if(blood <=0){break;}}cout << "Mage attck = "<<count_m <<endl;cout << "Archer attck = "<<count_a <<endl;return 0;
}

运行结果

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

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

相关文章

MATLAB基本绘图操作(二维和三维绘图)

MATLAB基本绘图操作 文章目录 MATLAB基本绘图操作1、二维平面绘图2、三维立体绘图 1、二维平面绘图 x0:0.01:2*pi; %从09开始&#xff0c;每次递增0.01&#xff0c;一直到2*pi结束 y sin(x) ; figure %建立一个幕布 plot(x, y) %绘制二维的平面图 title(y sin(x)) %标题…

BIND-DNS配置介绍

一、主要配置文件 /etc/named.conf options { //Option 段全部配置 listen-on port 53 { 127.0.0.1; };//表示BIND将在53端口监听&#xff0c;若需要对所有IP进行监听&#xff0c;则修改为// listen-on port 53 { any; }; directory "/var/named"…

前端开发个人简历范本(2024最新版-附模板)

前端开发工程师个人简历范本> 年龄 25岁 性别 男 毕业院校 XX大学 张三 学历 邮箱 leeywai-tools.cn 本科 专业 计算机科学与技术 个人梗概 拥有扎实的前端开发技能和丰富的实践经验 善于与团队合作&#xff0c;适应能力强&#xff0c;能够快速融入团队并贡献自…

从0开始python学习-38.pytest的parametrize结合yaml实现数据驱动

目录 1. 数据驱动 2. 定制化allure报告 1. 数据驱动 yaml文件中写入 -data: 1ces: 2- test:data: 3 数据驱动&#xff1a;pytest.mark.parametrize("参数名","参数值&#xff08;可以是list或tuple&#xff09;") 注意&#xff1a;这里参数值只能是列…

2英文中的所有时态格式及相同一句话示例

https://blog.csdn.net/chenhao0568/article/details/135296013?spm1001.2014.3001.5502 英文中的所有时态格式及相同一句话示例 英语中的时态主要分为三大类&#xff1a;过去时、现在时、将来时。每一类时态都有四种基本形式&#xff1a;简单式&#xff08;一般式&#xff0…

江西速欣商务咨询有限公司:深度解析停息挂账,助您财务重启

停息挂账问题可能对个人或企业财务产生严重影响&#xff0c;但江西速欣商务咨询有限公司以其深度解析停息挂账的专业能力&#xff0c;致力于助您重新启动财务&#xff0c;实现财务的良性发展。 专业团队&#xff0c;深度解析挂账难题 速欣商务咨询拥有一支专业团队&#xff0c…

如何利用XPath来提取script标签中的数据?

XPath是一种用于在XML文档中定位和选择节点的语言。如果你要提取script标签中的数据&#xff0c;可以使用XPath表达式来定位包含脚本数据的节点。以下是一些示例XPath表达式&#xff0c;以及如何在Python中使用lxml库来实现&#xff1a; 假设有如下HTML文档结构&#xff1a; …

Win32 基本程序设计原理总结

目录 1. Windows系统 基本原理 2. 需要什么函数库&#xff08;.LIB&#xff09; 2.1 C Runtimes&#xff1a; 2.2 Windows API 3. 需要什么头文件&#xff08;.H&#xff09; 4. Windows 程序运行的本质 5. 窗口类的注册与窗口的诞生 6.消息 6.1 消息分类&#xff1a;…

JavaScript之常用的事件

文章目录 前言为什么使用事件呢?常用的触发事件窗口事件onbluronfocusonresize窗口加载事件 表单事件onchangeoninput 键盘事件onkeydownonkeyup 鼠标事件onclickondblclickonmousemoveonmouseoutonscroll 总结窗口事件总结表单事件总结键盘事件总结鼠标事件总结 前言 在网页中…

如何在Mendix中实现全文检索

功能背景 在日常的应用使用过程中&#xff0c;存在大量希望使用全文检索技术的场景&#xff0c;对资料库中的内容进行查询。Mendix默认的结构化查询方式&#xff0c;适合对特定业务实体进行类似数据库单表的基于SQL语句的查询。那如何在Mendix实现全文检索的功能呢&#…

网络端口(包括TCP端口和UDP端口)的作用、定义、分类,以及在视频监控和流媒体通信中的定义

目 录 一、什么地方会用到网络端口&#xff1f; 二、端口的定义和作用 &#xff08;一&#xff09;TCP协议和UDP协议 &#xff08;二&#xff09;端口的定义 &#xff08;三&#xff09;在TCP/IP体系中&#xff0c;端口(TCP和UDP)的作用 &#xff08;…

利用MATLAB绘制折线图

x20:20:140;%x轴上的数据&#xff0c;第一个值代表数据开始&#xff0c;第二个值代表间隔&#xff0c;第三个值代表终止a[0.85, 2.2, 3.45, 2.65, 1.5, 1.9, 1.25]; %a数据y值plot(x,a,-*b); %线性&#xff0c;颜色&#xff0c;标记 axis([0,160,0,4]) %确定x轴与y轴框图大小 …