c++ 虛函數

虛函數的作用就是當一個類繼承另一個類時,兩個類有同名函數,當你使用指針調用時你希望使用子類的函數而不是父類的函數,那么請使用 virutaloverride 關鍵詞

看代碼:

#include <iostream>
#include <string>
#include <vector> 
#include <algorithm> /* sort*/
#include <functional> /*std::greater<int>()*/
#include "game.h"class Entity {/*解決辦法就是使用虛函數,同時使用標記覆蓋功能 */
public:virtual std::string GetName() { return "Entity"; }
};void PrintName(Entity* entity) { /*同樣的,我們這里希望傳入Player的GetName(),但并沒有*/std::cout << entity->GetName() << std::endl;
}class Player : public Entity {
private:std::string	m_Name;
public:Player(const std::string& name): m_Name(name){}std::string GetName() override { return m_Name; } /* here! */
};int main() {Entity* e = new Entity();std::cout << e->GetName() << std::endl;Player* p = new Player("Che");std::cout << p->GetName() << std::endl;Entity* entity = p;std::cout << entity->GetName() << std::endl; /*這里你可能想要打印的是Player的名字,但是你會得到Entity*/PrintName(entity);/*同樣的,得到了Entity,但是你希望得到Che*/std::cin.get();
}

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

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

相關文章

Kotlin開發筆記:集合和逆變協變

Kotlin開發筆記&#xff1a;集合和逆變協變 Kotlin中的集合 基本的集合類型 Kotlin中的集合類型和Java差不多&#xff0c;不過有些在名稱上可能有出入&#xff0c;下面是Kotlin中的一些基本集合類型&#xff1a; 類型介紹Pair兩個值的元組Triple三個值的元組Array經過索引的…

去掉鼠標系列之一: 語雀快捷鍵使用指南

其實應該是系列之二了&#xff0c;因為前面寫了一個關于Interlij IDEA的快捷鍵了。 為什么要寫這個了&#xff0c;主要是覺得一會兒用鼠標&#xff0c;一會兒鍵盤&#xff0c;一點兒不酷&#xff0c;我希望可以一直用鍵盤&#xff0c;拋開鼠標。后面陸續記錄一下各個軟件的快捷…

高效使用ChatGPT之ChatGPT客戶端

ChatGPT客戶端&#xff0c;支持Mac, Windows, and Linux 下載地址見文章結尾 軟件截圖 Windows: Mac&#xff1a; 說明 chatgpt桌面版&#xff0c;相比于網頁版的chatgpt&#xff0c;最大的特色是支持歷史聊天對話記錄導出&#xff0c;且支持三種格式&#xff1a;PNG、PDF、…

由淺入深詳解四種分布式鎖

在多線程環境下&#xff0c;為了保證數據的線程安全&#xff0c;鎖保證同一時刻&#xff0c;只有一個可以訪問和更新共享數據。在單機系統我們可以使用synchronized鎖或者Lock鎖保證線程安全。synchronized鎖是Java提供的一種內置鎖&#xff0c;在單個JVM進程中提供線程之間的鎖…

小程序的數據綁定和事件綁定

小程序的數據綁定 1.需要渲染的數據放在index.js中的data里 Page({data: {info:HELLO WORLD,imgSrc:/images/1.jpg,randomNum:Math.random()*10,randomNum1:Math.random().toFixed(2)}, }) 2.在WXML中通過{{}}獲取數據 <view>{{info}}</view><image src"{{…

C++ std::thread

若要使用線程類std::thread&#xff0c;則需包含<thread>頭文件。 創建線程 std::thread表示一個線程。線程對象是不可復制或賦值的&#xff0c;但可以移動(move)&#xff0c;如移動構造或移動賦值。 當構造std::thread對象時&#xff0c;需給構造函數輸入一個參數&am…

RocketMQ 5.0 架構解析:如何基于云原生架構支撐多元化場景

作者&#xff1a;隆基 本文將從技術角度了解 RocketMQ 的云原生架構&#xff0c;了解 RocketMQ 如何基于一套統一的架構支撐多元化的場景。 文章主要包含三部分內容。首先介紹 RocketMQ 5.0 的核心概念和架構概覽&#xff1b;然后從集群角度出發&#xff0c;從宏觀視角學習 R…

swift 項目集成友盟推送

1, 需要用橋接文件 , 不然引用不到依賴庫 2, 可以用測試模式測試, 可以debug 3, 測試模式獲取deviceToken, 添加測試設備 deviceToken獲取方法 func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) { le…

spark使用心得

spark入門 啟停spark sbin/start-all.shsbin/stop-all.shspark-shell 進入spark/bin目錄&#xff0c;執行&#xff1a; ./spark-shell 輸出中有這么一行&#xff1a; Spark context Web UI available at http://xx.xx.xx.188:4040意味著我們可以從web頁面查看spark的運行情…

優測云服務平臺|【壓力測試功能升級】輕松完成壓測任務

一、本次升級主要功能如下&#xff1a; 1.多份報告對比查看測試結果 2.報告新增多種下載格式 Word格式Excel格式 3.新增多種編排復雜場景的控制器 漏斗控制器并行控制器事務控制器僅一次控制器分組控制器集合點 4.新增概覽頁面&#xff0c;包含多種統計維度 二、報告對比…

開源語音聊天軟件Mumble

網友 大氣 告訴我&#xff0c;Openblocks在國內還有個版本叫 碼匠&#xff0c;更貼合國內軟件開發的需求&#xff0c;如接入了國內常用的身份認證&#xff0c;接入了國內的數據庫和云服務&#xff0c;也對小程序、企微 sdk 等場景做了適配。 在 https://majiang.co/docs/docke…

類與對象(上)

類與對象&#xff08;上&#xff09; 一、面向過程和面向對象的區別二、類1、類的引入2、類的定義&#xff08;1&#xff09;類的基本定義&#xff08;2&#xff09;類的成員函數的定義方法 3、類的訪問限定符4、封裝5、駝峰法命名規則6、類的作用域7、類的實例化&#xff08;1…

金蝶軟件實現導入Excel數據分錄行信息到單據體分錄行中

>>>適合KIS云專業版V16.0|KIS云旗艦版V7.0|K/3 WISE 14.0等版本<<< 金蝶軟件中實現[導入Excel數據業務分錄行]信息到[金蝶單據體分錄]中,在采購訂單|采購入庫單|銷售訂單|銷售出庫單等類型單據中,以少量的必要字段在excel表格中按模板填列好,很方便快捷地從…

IntelliJ IDEA(簡稱Idea) 基本常用設置及Maven部署---詳細介紹

一&#xff0c;Idea是什么&#xff1f; 前言&#xff1a; 眾所周知&#xff0c;現在有許多編譯工具&#xff0c;如eclipse&#xff0c;pathon, 今天所要學的Idea編譯工具 Idea是JetBrains公司開發的一款強大的集成開發環境&#xff08;IDE&#xff09;&#xff0c;主要用于Java…

Rancher管理K8S

1 介紹 Rancher是一個開源的企業級多集群Kubernetes管理平臺&#xff0c;實現了Kubernetes集群在混合云本地數據中心的集中部署與管理&#xff0c;以確保集群的安全性&#xff0c;加速企業數字化轉型。Rancher 1.0版本在2016年就已發布&#xff0c;時至今日&#xff0c;Ranche…

2023牛客第七場補題報告C F L M

2023牛客第七場補題報告C F L M C-Beautiful Sequence_2023牛客暑期多校訓練營7 (nowcoder.com) 思路 觀察到數組一定是遞增的&#xff0c;所以從最高位往下考慮每位的1最多只有一個&#xff0c;然后按位枚舉貪心即可。 代碼 #include <bits/stdc.h> using namespac…

CS:GO升級 Linux不再是“法外之地”

在前天的VAC大規模封禁中&#xff0c;有不少Linux平臺的作弊玩家也迎來了“遲到”的VAC封禁。   一直以來&#xff0c;Linux就是VAC封禁的法外之地。雖然大部分玩家都使用Windows平臺進行游戲。但實際上&#xff0c;使用Linux暢玩CS:GO的玩家也不在少數。 以前V社主要打擊W…

Linux上安裝和使用git到gitoschina和github上_親測

Linux上安裝和使用git到gitoschina和github上_親測 git介紹與在linux上安裝創建SSHkey在git-oschina使用maven-oschina使用在github使用maven-github使用組織與倉庫 【git介紹與在linux上安裝】 Git是一款免費、開源的分布式版本控制系統&#xff0c;用于敏捷高效地處理任何…

uniapp隱藏底部導航欄(非自定義底部導航欄)

uniapp隱藏底部導航欄 看什么看&#xff0c;要多看uni官方文檔&#xff0c;里面啥都有 看什么看&#xff0c;要多看uni官方文檔&#xff0c;里面啥都有 uniapp官方網址&#xff1a;uni設置TabBar // 展示 uni.showTabBar({animation:true,success() {console.debug(隱藏成功)…

【LVS】1、LVS負載均衡群集

1.群集的含義&#xff1a; Cluster、群集、集群 由多臺主機構成并作為一個整體&#xff0c;只提供一個訪問入口&#xff08;域名與IP地址&#xff09;&#xff1b;可伸縮 2.集群使用的場景&#xff1a; 高并發 3.企業群集的分類&#xff1a; 根據群集所針對的目標差異&a…