C++ 繼承方式使用場景(極簡版)

1. 公有繼承(public

什么時候用?

  • “是一個”(is-a)關系:派生類 基類的一種。
    • 例:class Dog : public Animal(狗是動物)
  • 最常見,90%的繼承都用它

2. 保護繼承(protected

什么時候用?

  • “實現繼承”:只希望派生類能訪問基類成員,外部不能訪問
    • 例:工具類繼承,基類方法僅供派生類內部使用。

3. 私有繼承(private

什么時候用?

  • “用…實現”(has-a 的替代方案)
    • 派生類 內部使用 基類功能,但 不暴露接口
    • 例:class Stack : private LinkedList(棧用鏈表實現,但對外不暴露鏈表方法)。

4. 多重繼承

什么時候用?

  • 組合多個功能:一個類需要 同時具備多個基類特性
    • 例:class Smartphone : public Phone, public Camera(智能手機既是電話又是相機)。
  • ?? 注意:避免基類有同名成員(會沖突)。

5. 虛擬繼承(virtual

什么時候用?

  • 解決"鉆石繼承"問題(一個基類被多次繼承)。
    • 例:
      class A {};
      class B : virtual public A {};  // 虛擬繼承
      class C : virtual public A {};
      class D : public B, public C {}; // 不會重復繼承A
      

6. 純虛函數 & 抽象類

什么時候用?

  • 強制派生類實現接口
    • 例:
      class Shape {
      public:virtual void draw() = 0; // 純虛函數
      };
      class Circle : public Shape {
      public:void draw() override { /* 必須實現 */ }
      };
      
  • 抽象類不能實例化,只能被繼承

總結:什么時候用什么?

繼承方式典型場景示例
public"是一個"關系(is-a)Dog : public Animal
protected僅派生類可訪問基類成員工具類內部繼承
private“用…實現”(不暴露基類接口)Stack : private LinkedList
多重繼承組合多個功能Smartphone : Phone, Camera
虛擬繼承解決鉆石繼承問題D : B, C(B/C虛擬繼承A)
純虛函數強制派生類實現接口ShapeCircle

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

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

相關文章

Ubuntu 系統 Docker 中搭建 CUDA cuDNN 開發環境

CUDA 是 NVIDIA 推出的并行計算平臺和編程模型,利用 GPU 多核心架構加速計算任務,廣泛應用于深度學習、科學計算等領域。cuDNN 是基于 CUDA 的深度神經網絡加速庫,為深度學習框架提供高效卷積、池化等操作的優化實現,提升模型訓練…

高密度任務下的挑戰與破局:數字樣機助力火箭發射提效提質

2025年4月1日12時,在酒泉衛星發射中心,長征二號丁運載火箭順利升空,成功將一顆衛星互聯網技術試驗衛星送入預定軌道,發射任務圓滿完成。這是長征二號丁火箭的第97次發射,也是長征系列火箭的第567次發射。 執行本次任務…

關于SQL子查詢的使用策略

在 SQL 優化中,一般遵循**“非必要不使用子查詢”**的原則,因為子查詢可能會帶來額外的計算開銷,影響查詢效率。但是,并不是所有子查詢都需要避免,有時子查詢是最優解,具體要根據實際場景選擇合適的優化方式…

JavaEE初階復習(JVM篇)

JVM Java虛擬機 jdk java開發工具包 jre java運行時環境 jvm java虛擬機(解釋執行 java 字節碼) java作為一個半解釋,半編譯的語言,可以做到跨平臺. java 通過javac把.java文件>.class文件(字節碼文件) 字節碼文件, 包含的就是java字節碼, jvm把字節碼進行翻譯轉化為…

2.pycharm保姆級安裝教程

一、pycharm安裝 1.官網上下載好好軟,雙擊打開 2.下一步 3.修改路徑地址 (默認也可以) 4.打勾 5.安裝 不用重啟電腦 二、添加解釋器 1.雙擊軟件,打開 2.projects – new project 3.指定項目名字,項目保存地址,解釋器 4.右擊 – …

zk基礎—4.zk實現分布式功能二

大綱 1.zk實現數據發布訂閱 2.zk實現負載均衡 3.zk實現分布式命名服務 4.zk實現分布式協調(Master-Worker協同) 5.zk實現分布式通信 6.zk實現Master選舉 7.zk實現分布式鎖 8.zk實現分布式隊列和分布式屏障 4.zk實現分布式協調(Master-Worker協同) (1)Master-Worker架構…

Java 實現 字母異位詞分組

在這篇博客中,我們將詳細解析如何使用 Java 代碼來解決 字母異位詞分組這個經典的算法問題。我們會逐步分析代碼邏輯,并探討其時間復雜度及優化思路。 題目描述 給定一個字符串數組 strs,請將字母異位詞組合在一起。字母異位詞是指由相同字…

【Ragflow】10. 助理配置參數詳細解析/模型響應加速方法

概述 Ragflow的助理配置中,有很多參數,盡管官方文檔給出了一定程度的解釋,但不夠詳細。 本文將對各項參數進行更詳細的解釋說明,并進一步挖掘某些參數中隱含的潛在陷阱。 助理設置 空回復 含義:輸入的問題若未能在…

Mac Apple silicon如何指定運行amd64架構的ubuntu Docker?

如何指定運行amd64架構的ubuntu Docker 下面這個docker命令如何指定運行amd64架構的ubuntu Docker? docker run -it -v $(pwd):/workspace ubuntu:20.04 bash這個命令已經非常接近正確運行一個基于 amd64 架構的 Ubuntu 容器了,但如果你想明確指定運行…

ColPali:基于視覺語言模型的高效文檔檢索

摘要 文檔是視覺豐富的結構,不僅通過文本傳遞信息,還包括圖表、頁面布局、表格,甚至字體。然而,由于現代檢索系統主要依賴從文檔頁面中提取的文本信息來索引文檔(通常是冗長且脆弱的流程),它們…

使用C++實現HTTP服務

天天開心!!! 閱讀本篇文章之前,請先閱讀HTTP基礎知識 傳送門----> HTTP基礎知識 文章目錄 一、CWeb服務器(核心代碼WebServer.cpp)二、靜態文件結構三、編譯和運行四、訪問測試 一、CWeb服務器&#xff…

Reactive編程入門:Project Reactor 深度指南

文章目錄 4.2.1 創建 Flux 和 MonoFlux 基礎創建方式高級創建模式Mono 創建方式 4.2.2 訂閱與數據處理基礎訂閱模式數據處理操作符 4.2.3 核心操作符深度解析flatMap 操作符zip 操作符buffer 操作符 高級組合模式復雜流處理示例背壓處理策略 測試響應式流性能優化技巧 React 編…

【萬字總結】前端全方位性能優化指南(完結篇)——自適應優化系統、遺傳算法調參、Service Worker智能降級方案

前言 自適應進化宣言 當監控網絡精準定位病灶,真正的挑戰浮出水面:系統能否像生物般自主進化? 五維感知——通過設備傳感器實時捕獲環境指紋(如地鐵隧道弱光環境自動切換省電渲染) 基因調參——150個性能參數在遺傳算…

PQ以及有關索引的筆記Faiss: The Missing Manual

參考Faiss 索引結構總結: 為了加深記憶,介紹一下Inverted File Index(IVF)的名字由來: IVF索引的名字源自“倒排文件”(Inverted File)的概念。在傳統的信息檢索中,倒排文件是一種索…

win10徹底讓圖標不顯示在工具欄

關閉需要不顯示的軟件 打開 例此時我關閉了IDEA的顯示 如果說只是隱藏,鼠標拖動一個道理 例QQ 如果說全部顯示不隱藏

關稅核爆72小時!跨境矩陣防御戰緊急打響

一、T86崩塌:全球貿易鏈的至暗時刻 (配圖:美國海關系統深夜彈出紅色警報) 5月2日凌晨2:17,杭州某光伏企業的供應鏈系統突然發出刺耳警報——其價值1800萬美元的逆變器模塊被劃入34%關稅清單。這場代號"黑天鵝突…

藍橋杯Java B組省賽真題題型近6年統計分類

困難題 題號題型分值代碼量難度通過率內容2024-F解答1581困難0.12最短路問題 Dijkstra 期望2024-G解答20116困難0.19模擬 暴力 搜索 DFS 剪紙 枚舉2023-H解答2070困難0動態規劃2022-H解答20109困難0.032022-J解答25141困難0搜索2021-H解答2041困難0.18二分 思維 規律2021-I解答…

【網絡流 圖論建模 最大權閉合子圖】 [六省聯考 2017] 壽司餐廳

題目描述: P3749 [六省聯考 2017] 壽司餐廳 題目描述 Kiana 最近喜歡到一家非常美味的壽司餐廳用餐。 每天晚上,這家餐廳都會按順序提供 n n n 種壽司,第 i i i 種壽司有一個代號 a i a_i ai? 和美味度 d i , i d_{i, i} di,i?&…

前端面試題(三):axios有哪些常用的方法

Axios 是一個基于 Promise 的 HTTP 客戶端,用于瀏覽器和 Node.js 中發送 HTTP 請求。它提供了一些常用的方法來處理不同類型的請求。以下是 Axios 中常用的一些方法: 1. axios.get() 用于發送 GET 請求,從服務器獲取數據。 axios.get(/api/d…

python match case語法

學習路線:B站 普通的if判斷 def if_traffic_light(color):if color red:return Stopelif color yellow:return Slow downelif color green:return Goelse:return Invalid colorprint(if_traffic_light(red)) # Output: Stop print(if_traffic_light(yellow)) …