day7作業

編寫一個如下場景: 有一個英雄Hero類,私有成員,攻擊(Atx),防御(Defense),速度(Speed),生命值(Blood),以及所有的set get 方法 編寫一個 武器 Weapon 類,擁有私有成員攻擊力(Atx),以及set get 方法 編寫一個 長劍 Sword 類,繼承自武器類,拓展屬性 生命值(Blood),以及set get 方法 編寫一個 匕首Blade類,繼承自武器類,拓展屬性 速度(Speed),以及set get 方法 編寫一個 斧頭 Axe類,繼承自武器類,拓展屬性 防御力(Defense),以及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{
private:int Atx;int Defense;int Speed;int Blood;
public:Hero(int Atx=0,int Defense=0,int Speed=0,int Blood=0):Atx(Atx),Defense(Defense,Speed(Speed),Blood(Blood){}void setAtx(int atx) { Atx = atx; }int getAtx() const { return Atx; }void setDefense(int defense) { Defense = defense; }int getDefense() const { return Defense; }void setSpeed(int speed) { Speed = speed; }int getSpeed() const { return Speed; }void setBlood(int blood) { Blood = blood; }int getBlood() const { return Blood; }
};class Weapon{
private:int Atx;
public:		Weapon(int Atx=0):Atx(Atx){}virtual ~Weapon() {}virtual void equip(Hero* h) = 0;virtual void unequip(Hero* h) = 0;void setAtx(int atx) { Atx = atx; }int getAtx() const { return Atx; }};
class Sword:public Weapon{private:int Blood;public:Sword(int Blood=50):Defense(Defense){}void equip(Hero* h) {Weapon::equip(h);h->setBlood(h->getBlood() + bloodBonus);}void setBlood(int blood) {Blood = blood; }int getBlood() const { return blood; }
};
}class Blade:public Weapon{
private:int Speed;public:Sword(int Speed=50):Defense(Defense){}void equip(Hero* h) {Weapon::equip(h);h->setSpeed(h->getSpeed() + Speed;}void setSpeed(int speed) { Speed = speed; }int getSpeed() const { return speed; }
};}
class Axe:public Weapon{
private:int Defense;public:Axe(int Defense=50):Defense(Defense){}void equip(Hero* h) {Weapon::equip(h);h->setDefense(h->getDefense() + Defenss);}void setDefenseBonus(int defense) { Denfense = defense; }int getDefense() const { return Defense; }
};
}int main(int argc,const char** argv){Hero hero;Sword sword;Blade blade;Axe axe;
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/70829.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/70829.shtml
英文地址,請注明出處:http://en.pswp.cn/web/70829.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

阿里云ack的創建與實戰應用案例

阿里云ack的創建與應用案例 創建前開通ack相關服務&#xff1a;開始創建簡單的魔方游戲&#xff0c;熟悉sv與clb自動注冊創建部署一個nginx 服務示例&#xff1a;走不同域名訪問不同svc資源&#xff1a;為什么需要 Ingress &#xff1f;創建第一個域名的 Deployment和Service。…

青少年編程都有哪些比賽可以參加

Python小學生可參加的賽事&#xff1a; 電子學會青少年編程考級、中國計算機學會編程能力等級認證、藍橋杯、 信奧賽CSP-J/S初賽/NOIP(推薦C)、編程設計、信息素養、科技創新賽&#xff1b; 升學助力(科技特長生、大學)、企業、出國留學&#xff1b; python比賽&am…

MinIO在 Docker中修改登錄賬號和密碼

MinIO在 Docker中修改登錄賬號和密碼 隨著云計算和大數據技術的快速發展&#xff0c;對象存儲服務逐漸成為企業數據管理的重要組成部分。MinIO 作為一種高性能、分布式的對象存儲系統&#xff0c;因其簡單易用、高效可靠的特點而備受開發者青睞。然而&#xff0c;在實際應用中…

pycharm編寫ai大模型api調用程序及常見錯誤

這里寫目錄標題 一級目錄1. 訪問Django項目&#xff0c;python web url時&#xff0c;報錯2. 傳參報名&#xff0c;python web url時&#xff0c;報錯正確訪問結果&#xff1a; 二、購買價格 和 見錯誤碼 一級目錄 1. 訪問Django項目&#xff0c;python web url時&#xff0c;…

RISCV指令集解析

參考視頻&#xff1a;《RISC-V入門&進階教程》1-4-RV32I基本指令集&#xff08;1&#xff09;_嗶哩嗶哩_bilibili privilege是特權指令集&#xff0c;有點系統調用的感覺&#xff0c;要走內核態。unprivilege指令集有點像普通的函數調用。

Java中的TreeMap

TreeMap繼承自AbstractMap&#xff0c;并實現了NavigableMap接口(NavigableMap繼承自SortedMap接口)。底層的數據結構是紅黑樹&#xff0c;按照鍵的自然排序或者自定義實現的規則排序&#xff0c;實現元素的有序性。 特點 元素是有序的&#xff1a;按照key的自然排序或者是自…

vue3表單驗證的時候訪問接口如果有值就通過否則不通過.主動去觸發校驗

頁面有個身份證號碼的校驗。校驗完身份證格式是否符合之后還要去訪問接口查詢這個用戶是否存在。如果存在才通過驗證。否則就校驗不通過 <el-form ref"ruleFormRef" :model"form" label-width"140px" label-position"right" label…

Python常見面試題的詳解24

1. 如何對關鍵詞觸發模塊進行測試 要點 功能測試&#xff1a;驗證正常關鍵詞觸發、邊界情況及大小寫敏感性&#xff0c;確保模塊按預期響應不同輸入。 性能測試&#xff1a;關注響應時間和并發處理能力&#xff0c;保證模塊在不同負載下的性能表現。 兼容性測試&#xff1a;測…

前端Javascrip后端Net6前后分離文件上傳案例(完整源代碼)下載

文件上傳功能在項目開發中非常實用&#xff0c;本案例前端用Javascrip實現&#xff0c;后端用Net6實現 前端Javascrip后端Net6前后分離文件上傳案例&#xff08;完整源代碼&#xff09; 下載鏈接 https://download.csdn.net/download/luckyext/90437795?spm1001.2014.3001.5…

DeepSeek行業應用實踐報告-智靈動力【112頁PPT全】

DeepSeek&#xff08;深度搜索&#xff09;近期引發廣泛關注并成為眾多企業/開發者爭相接入的現象&#xff0c;主要源于其在技術突破、市場需求適配性及生態建設等方面的綜合優勢。以下是關鍵原因分析&#xff1a; 一、技術核心優勢 開源與低成本 DeepSeek基于開源架構&#xf…

C語言綜合案例:學生成績管理系統

C語言綜合案例&#xff1a;學生成績管理系統 需求 1.存儲最多50名學生的信息&#xff08;不使用結構體&#xff09; 2.每個學生包含&#xff1a; 學號&#xff08;字符數組&#xff09;姓名&#xff08;字符數組&#xff09;3門課程成績&#xff08;一維數組&#xff09; …

Day 51 卡瑪筆記

這是基于代碼隨想錄的每日打卡 647. 回文子串 給你一個字符串 s &#xff0c;請你統計并返回這個字符串中 回文子串 的數目。 回文字符串 是正著讀和倒過來讀一樣的字符串。 子字符串 是字符串中的由連續字符組成的一個序列。 示例 1&#xff1a; 輸入&#xff1a;s &q…

結構型模式---外觀模式

概念 外觀模式是一種結構型設計模式&#xff0c;它的核心思想是為復雜的子系統提供一個統一的接口&#xff0c;簡化客戶端與子系統的交互。外觀模式通過引入一個高層接口&#xff0c;隱藏子系統的復雜性&#xff0c;使客戶端更容易使用。 適用場景 用于客戶端無需具體操作子…

DeepSeek開源周第二彈:DeepEP如何用RDMA+FP8讓MoE模型飛起來?

一、引言&#xff1a;MoE模型的通信瓶頸與DeepEP的誕生 在混合專家&#xff08;MoE&#xff09;模型訓練中&#xff0c;專家間的全對全&#xff08;All-to-All&#xff09;通信成為性能瓶頸。傳統方案在跨節點傳輸時帶寬利用率不足50%&#xff0c;延遲高達300μs以上。DeepSee…

多通道數據采集和信號生成的模塊化儀器如何重構飛機電子可靠性測試體系?

飛機的核心電子系統包括發電與配電系統&#xff0c;飛機內部所有設備和系統之間的內部數據通信系統&#xff0c;以及用于外部通信的射頻設備。其他所有航空電子元件都依賴這些關鍵總線進行電力傳輸或數據通信。在本文中&#xff0c;我們將了解模塊化儀器&#xff08;無論是PCIe…

【Godot4.3】基于繪圖函數的矢量蒙版效果與UV換算

概述 在設計圓角容器時突發奇想&#xff1a; 將圓角矩形的每個頂點坐標除以對應圓角矩形所在Rect2的size&#xff0c;就得到了頂點對應的UV坐標。然后使用draw_colored_polygon&#xff0c;便可以做到用圖片填充圓角矩形的效果。而且這種計算的效果就是圖片隨著其填充的圖像縮…

數據存儲:一文掌握存儲數據到MongoDB詳解

文章目錄 一、環境準備1.1 安裝MongoDB1.2 安裝Python MongoDB驅動 二、連接到MongoDB2.1 基本連接2.2 連接到MongoDB Atlas&#xff08;云服務&#xff09; 三、基本CRUD操作3.1 創建&#xff08;Create&#xff09;&#xff1a;插入數據3.2 讀取&#xff08;Read&#xff09;…

算法教程:島的最大面積

算法教程:島的最大面積 我們將首先討論問題和解決方案,然后使用可視化工具(上一篇博客中進行了介紹)來更好地理解搜索過程。 問題描述 我們將要演練的具體問題是問題 Leetcode:島嶼的最大面積。在 Leetcode 上找到的直接問題描述是: 給你一個 m x n 二進制矩陣網格。島…

Scrapy:隧道代理中移除 Proxy-Authorization 的原理解析

隧道代理中移除 Proxy-Authorization 的原理解析 背景 在 Scrapy 的 HTTP 下載處理中&#xff0c;當使用隧道代理&#xff08;TunnelingAgent&#xff09;時&#xff0c;會移除請求頭中的 Proxy-Authorization。這個操作看似簡單&#xff0c;但背后有著重要的安全考慮和技術原…

大中型虛擬化園區網絡設計

《大中型虛擬化園區網絡設計》屬于博主的“園區網”專欄&#xff0c;若想成為HCIE&#xff0c;對于園區網相關的知識需要非常了解&#xff0c;更多關于園區網的內容博主會更新在“園區網”專欄里&#xff0c;請持續關注&#xff01; 一.前言 華為云園區網絡解決方案(簡稱Cloud…