關于繼承的一些知識(C++)

當我們想要設計幾個類分別記錄老師,學生的個人信息時會發現,像姓名、地址、身份證號、電話等等記錄基礎信息的成員變量是都具有的,重復定義會顯得冗余,但同時它們兩者又具有不同的記錄信息的成員變量,像學生需要記錄學號,老師需要記錄職稱,以及不同的成員函數。

可以想個辦法,比如將重復的部分單獨拎出來,都寫在一個類里,然后不同的部分就繼承這個類成為一個類,這樣的新類就叫做子類(派生類)

繼承定義

訪問限定符與繼承方式一起,總共有9種組合方式

繼承方式分為三種

public繼承、protected繼承、private繼承

訪問限定符分為三種

public訪問、protected訪問、private訪問

不可見的意思是,基類的私有成員在派生類里是用不了的

但是有間接的方式,可以借助父類的公有成員函數進行使用

記憶方式:訪問限定符 取 繼承方式和基類的訪問限定符小的那個

如果是class,不寫繼承方式默認就是私有繼承

如果是struct,不寫繼承方式就是默認是公有繼承

繼承類模板

基類是模板需要實例化,按需實例化,不能直接使用,需要指定類域

因為當派生類實例化時,基類也會被實例化,但由于基類是模板類型,所以成員函數并未實例化,所以找不到

派生類可以是模板類或者非模板類

當是模板類時,派生類可以繼承基類模板所以特化版本

當是非模板類時,派生類只能繼承基類模板的某個特定實例,這種情況下,派生類在繼承時需要指定基類模板的參數,實例化一個具體的基類

基類和派生類的轉換

不同類型的對象進行賦值時,會因為類型不同發生類型轉換,過程中會出現臨時對象,所以引用加類型轉換需要加上const(臨時對象具有常性)

在public繼承中,就有個特殊的例外,派生類對象可以直接賦值給基類的指針或者引用,而不需要加const,因為沒有產生臨時對象,給的直接是派生類里父類的那一部分

如果是賦值 父=子的形式,就是通過基類的拷貝構造或賦值重載完成,需要進行切割,將子類的自己定義的部分切掉

隱藏

派生類和基礎類是可以有同名成員的,如果派生類有與基類函數名相同的成員函數(沒有使用virtual關鍵字)或者相同名字的成員變量,基類的同名成員函數或成員變量將會被隱藏

這意味著在派生類對象上調用該函數時,將調用派生類中的版本,而不是基類中的版本。如果需要調用基類中的被隱藏函數,可以使用作用域解析運算符?::?來顯式指定調用基類中的函數。

派生類的默認成員函數

跟普通類的規則高度相似

分成兩個部分分開處理:

1、基類成員(當成整體,調用基類構造)

2、派生類成員(跟普通類一樣)

在C++中,當創建一個派生類的對象時,為了確保基類的成員被正確初始化,派生類的構造函數必須顯式地調用基類的構造函數。這是因為構造函數不能被繼承,所以派生類需要負責初始化其基類的部分

如果允許構造函數被繼承,可能會導致初始化順序的問題。派生類的構造函數需要在初始化派生類成員之前先初始化基類成員,如果構造函數可以被繼承,那么這種初始化順序將無法保證

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

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

相關文章

永磁同步電機無速度算法--脈振方波注入法

一、原理介紹為了實現表貼式永磁電機的低速運行,研究一種基于高頻方波測試信號注入的無位置零低速傳感器控制策略。選取注入到觀測直軸的脈振高頻方波信號, 該信號注入方案可以有效避免旋轉信號注入法在轉子交軸分量引起轉矩脈動, 提高系統的…

VSCode Python 與 C++ 聯合調試配置指南

VSCode Python 與 C 聯合調試配置指南 為了實現 Python 與 C 的聯合調試,需要正確配置 launch.json 文件,具體配置如下: {// IntelliSense 支持查看屬性描述// 更多信息請參考: https://go.microsoft.com/fwlink/?linkid830387"version…

stm32和freeRtos的can總線

STM32內置bxCAN外設(CAN控制器、拓展CAN),支持CAN2.0A和2.0B(全部的CAN),可以自動發送CAN報文和按照過濾器自動接收指定CAN報文,程序只需處理報文數據而無需關注總線的電平細節波特率最高可達1兆位/秒,高速…

充電樁與照明“聯動”創新:智慧燈桿破解新能源基建難題

伴隨新能源汽車保有量呈現出極為迅猛的爆發式增長態勢,充電基礎設施的建設已然逐步成為城市發展進程中不可或缺的剛性需求。國家政策鼓勵推進充電設施同城市基礎設施展開一體化的建設工作,同時大力鼓勵“諸如路燈、監控桿這類市政設施去整合充電相關功能…

datagrip連接mysql數據庫過程以及遇到的問題

如果遇到這種錯誤說明時區錯誤,解決方法 jdbc:mysql://localhost:3306?serverTimezoneGMTdatagrip連接mysql數據庫下一步

Vue 3.5 defineModel:讓組件開發效率提升 10 倍

簡介 defineModel 是 Vue 3.4 引入并在 Vue 3.5 中穩定的一個組合式 API,它簡化了組件的雙向數據綁定實現。在此之前,實現雙向綁定需要手動定義 props 和 emits,而 defineModel 將這個過程自動化,讓代碼更加簡潔和直觀。 主要特…

性能測試-性能測試中的經典面試題一

一、核心概念與流程類性能測試的核心類型與區別負載測試:逐步加壓,探測系統閾值(如最大TPS/響應時間)。壓力測試:超越閾值施壓,驗證系統崩潰點及恢復能力。穩定性測試:80%~90%峰值壓力持續運行&…

華為昇騰芯片:多模態模型國產化的硬核突破

前言 在當今數字化時代,人工智能技術的發展日新月異,多模態模型作為 AI 領域的重要發展方向,正逐漸改變著人們與計算機交互的方式以及眾多行業的運作模式。多模態模型能夠處理多種類型的數據,比如圖像、文本、語音等,從…

阿里智能AI框架Playground,即學即用

Spring AI Alibaba Playground 是 Spring AI Alibaba 社區以 Spring AI Alibaba 和 Spring AI 為框架搭建的 AI 應用。包含完善的前端 UI 后端實現,具備對話,圖片生成,工具調用,RAG,MCP 等眾多 AI 相關功能。在 playg…

智能Agent場景實戰指南 Day 28:Agent成本控制與商業模式

【智能Agent場景實戰指南 Day 28】Agent成本控制與商業模式 文章標簽 AI Agent, 成本優化, 商業模式, LLM應用, 企業級AI 文章簡述 本文是"智能Agent場景實戰指南"系列的第28天,聚焦智能Agent的成本控制與商業模式設計這一關鍵課題。文章首先分析了Ag…

sqli-labs:Less-8關卡詳細解析

1. 思路🚀 本關的SQL語句為: $sql"SELECT * FROM users WHERE id$id LIMIT 0,1";注入類型:字符串型(單引號包裹)提示:參數id需以閉合 同樣無法像常規一樣回顯,php輸出語句的代碼如下&…

LeetCode 1782.統計點對的數目

給你一個無向圖,無向圖由整數 n ,表示圖中節點的數目,和 edges 組成,其中 edges[i] [ui, vi] 表示 ui 和 vi 之間有一條無向邊。同時給你一個代表查詢的整數數組 queries 。 第 j 個查詢的答案是滿足如下條件的點對 (a, b) 的數…

U-Mail郵件系統-全面適配信創環境的國產郵件系統

在當今數字化時代,郵件系統作為企業、政府機構以及各類組織日常辦公不可或缺的溝通工具,其安全性、穩定性以及自主可控性的重要性日益凸顯。隨著信創產業的蓬勃發展,國產郵件系統應運而生,成為保障信息安全、推動數字化轉型的關鍵…

【LeetCode 熱題 100】394. 字符串解碼

Problem: 394. 字符串解碼 給定一個經過編碼的字符串,返回它解碼后的字符串。 編碼規則為: k[encoded_string],表示其中方括號內部的 encoded_string 正好重復 k 次。注意 k 保證為正整數。 你可以認為輸入字符串總是有效的;輸入字符串中沒有…

Activity之間互相發送數據

activity_send_data_req.xml<?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"match_parent"android:layout_height"match_pare…

設計模式:訪問者模式 Visitor

目錄前言問題解決方案結構代碼前言 訪問者是一種行為設計模式&#xff0c;它能將算法與其所作用的對象隔離開來。 問題 假如你的團隊開發了一款能夠使用巨型圖像中地理信息的應用程序。 圖像中的每個節點既能代表復雜實體&#xff08;例如一座城市&#xff09;&#xff0c; 也…

OpenCV 學習探秘之四:從角點檢測,SIFT/SURF/ORB特征提取,目標檢測與識別,Haar級聯分類人臉檢測,再到機器學習等接口的全面實戰應用與解析

書接上回&#xff0c;前面介紹了一些基本應用&#xff0c;本篇則著重介紹一些比較復雜的應用。 附&#xff1a;本文所用例子中使用的Opencv庫OpenCV4.5.4版本編譯好的庫 五、特征提取與描述 5.1 角點檢測&#xff1a;Harris 角點和 Shi-Tomasi 角點 5.1.1 Harris 角點檢測&a…

《秋招在即!Redis數據類型面試題解析》

博客主頁&#xff1a;天天困啊系列專欄&#xff1a;面試題關注博主&#xff0c;后期持續更新系列文章如果有錯誤感謝請大家批評指出&#xff0c;及時修改感謝大家點贊&#x1f44d;收藏?評論? Redis中常見的基礎數據結構總共五種&#xff1a;這五種類型分別為String&#xff…

政務網站內容檢測系統對錯敏信息有什么作用

政務網站內容檢測系統在錯敏信息管理中發揮著重要作用&#xff0c;能夠有效提升政府網站的信息安全性與合規性。以下從錯敏信息的作用及蟻巡政務信息巡查系統的功能特點兩方面進行說明。一、政務網站內容檢測系統對錯敏信息的作用1、實時監測與識別內容檢測系統通過智能化技術對…

Tower of Hanoi 漢諾塔

題目描述The Tower of Hanoi game consists of three stacks (left, middle and right) and n round disks of different sizes. Initially, the left stack has all the disks, in increasing order of size from top to bottom. The goal is to move all the disks to the r…