当前位置: 首页 > wzjs >正文

35互联网站建设手机百度

35互联网站建设,手机百度,西安做网站的网络公司,山东济南公厕编写一个如下场景: 有一个英雄Hero类,私有成员,攻击,防御,速度,生命值,以及所有的set get 方法 编写一个 武器 Weapon 类,拥有私有成员攻击力,以及set get 方法 编写一个…

编写一个如下场景:
有一个英雄Hero类,私有成员,攻击,防御,速度,生命值,以及所有的set get 方法
编写一个 武器 Weapon 类,拥有私有成员攻击力,以及set get 方法
编写一个 长剑 Sword 类,继承自武器类,拓展属性 生命值,以及set get 方法
编写一个 匕首Blade类,继承自武器类,拓展属性 速度,以及set get 方法
编写一个 斧头 Axe类,继承自武器类,拓展属性 防御力,以及set get 方法

武器Weapon类里面,要求有一个多态函数,叫做 equip 函数
英雄Hero类里面,要求有一个公开函数,equipWeapon(Weapon* w)
实现功能:英雄既可以装备长剑,也可以装备短剑,也可以装备斧头,但是要求装备不同的武器,英雄需要获得不同的属性加成

#include <iostream>
#include <cstring>
#include <cstdlib>
#include <unistd.h>
#include <sstream>
#include <vector>
#include <memory>using namespace std;class Hero;// 武器基类
class Weapon {
private:int attack;
public:void setAttack(int val) { attack = val; }int getAttack() { return attack; }// 多态函数,装备武器时的行为virtual void equip(Hero* hero) = 0;
};// 英雄类
class Hero {
private:int attack;int defense;int speed;int life;
public:void setAttack(int val) { attack = val; }void setDefense(int val) { defense = val; }void setSpeed(int val) { speed = val; }void setLife(int val) { life = val; }int getAttack() { return attack; }int getDefense() { return defense; }int getSpeed() { return speed; }int getLife() { return life; }// 装备武器函数void equipWeapon(Weapon* w) {w->equip(this); // 调用武器的equip函数,传入当前英雄对象}// 打印英雄属性void printStats() {cout << "英雄属性: " << endl;cout << "攻击值: " << attack << endl;cout << "防御值: " << defense << endl;cout << "速度值: " << speed << endl;cout << "生命值: " << life << endl;}
};// 长剑类,继承自武器类
class Sword : public Weapon {
private:int lifeBonus; // 生命值加成
public:Sword(int attack, int lifeBonus) {setAttack(attack);this->lifeBonus = lifeBonus;}void setLifeBonus(int val) { lifeBonus = val; }int getLifeBonus() { return lifeBonus; }// 实现equip函数,装备长剑时增加英雄的攻击力和生命值void equip(Hero* hero) override {hero->setAttack(hero->getAttack() + getAttack());hero->setLife(hero->getLife() + lifeBonus);}
};// 匕首类,继承自武器类
class Blade : public Weapon {
private:int speedBonus; // 速度加成
public:Blade(int attack, int speedBonus) {setAttack(attack);this->speedBonus = speedBonus;}void setSpeedBonus(int val) { speedBonus = val; }int getSpeedBonus() { return speedBonus; }// 实现equip函数,装备匕首时增加英雄的攻击力和速度void equip(Hero* hero) override {hero->setAttack(hero->getAttack() + getAttack());hero->setSpeed(hero->getSpeed() + speedBonus);}
};// 斧头类,继承自武器类
class Axe : public Weapon {
private:int defenseBonus; // 防御力加成
public:Axe(int attack, int defenseBonus) {setAttack(attack);this->defenseBonus = defenseBonus;}void setDefenseBonus(int val) { defenseBonus = val; }int getDefenseBonus() { return defenseBonus; }// 实现equip函数,装备斧头时增加英雄的攻击力和防御力void equip(Hero* hero) override {hero->setAttack(hero->getAttack() + getAttack());hero->setDefense(hero->getDefense() + defenseBonus);}
};int main(int argc, const char** argv) {// 创建一个英雄Hero hero;hero.setAttack(10);hero.setDefense(5);hero.setSpeed(8);hero.setLife(100);// 打印初始属性cout << "初始化英雄属性:" << endl;hero.printStats();// 创建不同的武器Sword sword(15, 20); // 长剑,攻击力+15,生命值+20Blade blade(10, 5);  // 匕首,攻击力+10,速度+5Axe axe(20, 10);     // 斧头,攻击力+20,防御力+10// 装备长剑hero.equipWeapon(&sword);cout << endl << "装备长剑后:" << endl;hero.printStats();// 装备匕首hero.equipWeapon(&blade);cout << endl << "装备匕首之后:" << endl;hero.printStats();// 装备斧头hero.equipWeapon(&axe);cout << endl << "装备斧头之后:" << endl;hero.printStats();return 0;
}

运行结果:

http://www.dtcms.com/wzjs/345042.html

相关文章:

  • 做电影网站哪个系统好uc浏览网页版进入
  • 网站首页index.php全屏展示代码怎么弄哪里可以学seo课程
  • 做盗版电影网站犯法吗武汉大学人民医院怎么样
  • 用web做网站网络营销运营策划
  • 免费开网站系统吉林seo技术交流
  • 本地打开wordpress搜索引擎优化方法总结
  • 网站交易截图可以做证据吗网络营销主要做些什么工作
  • 网站开发设计南邮百度一下百度搜索官网
  • 深圳还有网站专业全网优化
  • wordpress博客类主题seo搜索引擎优化是
  • 个人简历表格模板上海抖音seo
  • qq交流群如何使用苏州关键词优化排名推广
  • 网站首页结构图自动推广软件免费
  • 长沙推广网站营销型网站建设模板
  • wordpress主题的文件在哪个文件夹seo如何快速出排名
  • 雅安工程交易建设网站阿里指数查询官网
  • 杨家平网站建设百度软文推广怎样收费
  • 山东网站建设和游戏开发的公司排名icp备案查询官网
  • 网站建设和营销福州seo技巧培训
  • 公众号采集wordpress上海优化网站seo公司
  • 深圳自己做网站 服务器无锡网站制作无锡做网站
  • 云南专业网站制作公司百度投放广告联系谁
  • 查公司的软件叫什么东莞优化疫情防控措施
  • python网页版编程成都seo公司排名
  • 好用的微信公众号编辑器seo推广具体做什么
  • 常州网站建设要多少钱排名seo怎么样
  • 会HTML怎么做网站关键词挖掘爱网站
  • 做影视网站赚钱吗班级优化大师app下载学生版
  • 用c语言可以做网站吗北京优化网站方法
  • 六盘水网站建设徐州关键词优化平台