c++:面向對象的繼承特性

什么是繼承

(1)繼承是C++源生支持的一種語法特性,是C++面向對象的一種表現
(2)繼承特性可以讓派生類“瞬間”擁有基類的所有(當然還得考慮權限)屬性和方法
(3)繼承特性本質上是為了代碼復用
(4)類在C++編譯器的內部可以理解為結構體,派生類是由基類成員疊加派生類新成員得到的
派生類又叫子類,基類又叫父類。兩種叫法都有人常用,我們后面會混用,鍛煉大家瞬間了然的能力

繼承中的權限管控

C++類中的訪問權限管控回顧
(1)public 類內部可以訪問,類的外部可以訪問
(2)private 類內部可以訪問,類的外部不能訪問
(3)protected 類內部可以訪問,類的外部不能訪問

1、父類的private成員,在三種繼承下都會被變成在子類中是比private還可憐的這種成員
2、父類的public成員,在public繼承下到子類中還是public,在protected繼承下到子類中是protected的,在private繼承下到子類中是private的。
3、父類的protected成員,在public繼承下到子類中是protected的,在protected繼承下到子類中是protected的,在private繼承下到子類中是private的。
4、private:如果是父類中的private權限成員,那么在繼承時會被降到比private還慘的這種;而如果是private繼承,則不會導致父類中public和protected的成員降權到比private還慘的這種,只會降級到private權限。
5、在繼承中父類中所有的成員(不管哪種權限)都會被繼承給子類,而不會丟失任何一個。

派生類和基類的構造析構關系

派生類并不繼承基類的構造和析構函數,只繼承成員變量和普通成員方法

派生類的構造函數一定會調用基類的構造函數,析構也一樣

#include <iostream>// 基類
class Animal {
public:// 帶參數的基類構造函數Animal(const std::string& name) : name_(name) {std::cout << "Animal constructor called for " << name_ << std::endl;}// 基類析構函數virtual ~Animal() {std::cout << "Animal destructor called for " << name_ << std::endl;}private:std::string name_;
};// 派生類
class Pigeon : public Animal {
public:// 帶參數的派生類構造函數Pigeon(const std::string& name, int age) : Animal(name), age_(age) {std::cout << "Pigeon constructor called for " << name << " aged " << age_ << std::endl;}// 派生類析構函數~Pigeon() {std::cout << "Pigeon destructor called for age " << age_ << std::endl;}private:int age_;
};int main() {Pigeon p("Polly", 3);return 0;
}

在這里插入圖片描述
為什么派生類的構造(析構)必須調用基類的某個構造(析構)
(1)牢記構造函數的2大作用:初始化成員,分配動態內存
(2)派生類和基類各自有各自的構造函數和析構函數,所以是各自管理各自的成員初始化,各自分配和釋放各自所需的動態內存
(3)繼承的語言特性,允許派生類調用基類的構造和析構函數,以管理派生類從基類繼承而來的那些成員。
(4)明確:派生類的構造和析構處理的永遠是派生類自己的對象,只是派生類對象模板中有一部分是從基類繼承而來的而已。

總結:

理解繼承是什么
繼承時是全部繼承方法和屬性
方法和屬性的權限分三類private、public、protected
繼承時會導致方法和屬性的權限被改變
理解繼承的體系設計原理
理解派生類會怎么樣調用基類的構造、析構函數

學習記錄,侵權聯系刪除。
來源:朱老師物聯網大課堂

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

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

相關文章

BJT交流分析+共發射極(CE)放大器+單片機的中斷系統(中斷的產生背景+使用中斷重寫秒表程序+中斷優先級)

2024-7-10&#xff0c;星期三&#xff0c;16:58&#xff0c;天氣&#xff1a;陰&#xff0c;心情&#xff1a;晴。今天終于陰天啦&#xff0c;有點風涼快一點了&#xff0c;不然真要受不了了&#xff0c;然后沒有什么特殊的事情發生&#xff0c;繼續學習啦&#xff0c;加油加油…

yolov5中訓練長條型目標召回率低問題

對于長條目標長寬比比較大的目標&#xff0c;如長1000pix,寬度10pix等在訓練時masic數據增強圖片中會出現有的圖片中標簽遺失問題&#xff0c;將原來標注好的目標&#xff0c;但是在增強圖片中沒有標簽&#xff0c;就會導致召回率低的問題。 在訓練代碼中augmentations.py文件…

MATLAB——運算符

文章目錄 MATLAB——運算符算數運算符矩陣的算數運算 關系運算邏輯運算符運算優先級 MATLAB——運算符 算數運算符 MATLAB中算數運算符包括加、減、乘、除、點乘、點除等。其運算規則如下表所示&#xff1a; 運算符運算規則ABA與B相加&#xff08;A、B為數值或矩陣&#xff0…

一鍵安裝ros及出現問題的解決方案

wget http://fishros.com/install -O fishros && . fishroscatkin_make時出現報錯如下 catkin_make時出現錯誤提示如下&#xff1a; catkin_make Base path: /home/efsz/zmq_to_ros Source space: /home/efsz/zmq_to_ros/src Build space: /home/efsz/zmq_to_ros/build…

科普文:HTTPS協議

概敘 HTTPS&#xff08;Secure Hypertext Transfer Protocol&#xff09;即安全超文本傳輸協議&#xff0c;是一個安全通信通道。用于計算機網絡的安全通信&#xff0c;已經在互聯網得到廣泛應用。 HTTPS 是基于 HTTP 的擴展&#xff0c;其相當于 HTTP協議SSL&#xff08;安全套…

0708,LINUX目錄相關操作

主要是冷氣太足感冒了&#xff0c;加上少吃藥抗藥性差&#xff0c;全天昏迷&#xff0c;學傻了學傻了 cat t_chdir.c #include <stdio.h> #include <unistd.h> #include <error.h> #include <errno.h> #include <sys/stat.h>int main(int argc…

魯棒控制器設計方法:systune,hinfsyn,musyn,slTuner

systune和hinfsyn更側重于基于數學模型的控制器設計&#xff0c;而musyn則特別考慮了系統的不確定性。slTuner則提供了在Simulink環境中進行控制器設計和調整的能力。 指定結構的控制器整定&#xff1a;systune, hinfstruct廣義控制對象整定&#xff1a;musyn, mixed musyn, h…

應急響應-ELK日志分析系統

&#x1f3bc;個人主頁&#xff1a;金灰 &#x1f60e;作者簡介:一名簡單的大一學生;易編橙終身成長社群的嘉賓.? 專注網絡空間安全服務,期待與您的交流分享~ 感謝您的點贊、關注、評論、收藏、是對我最大的認可和支持&#xff01;?? &#x1f34a;易編橙終身成長社群&#…

2024年PMP考試備考經驗分享

PMP是項目管理領域最重要的認證之一,本身是IT行業比較流行的證書&#xff0c;近幾年在臨床試驗領域也漸漸流行起來&#xff0c;是我周圍臨床項PM幾乎人手一個的證書。 考試時間&#xff1a;PMP認證考試形式為180道選擇題&#xff0c;考試時間為3小時50分。 考試計劃&#xff…

NFS綜合項目

現有主機 node01 和 node02&#xff0c;完成如下需求&#xff1a; 1、在 node01 主機上提供 DNS 和 WEB 服務 2、dns 服務提供本實驗所有主機名解析 3、web服務提供 www.rhce.com 虛擬主機 4、該虛擬主機的documentroot目錄在 /nfs/rhce 目錄 5、該目錄由 node02 主機提供的NFS…

Spring——自動裝配Bean

自動裝配是Spring滿足bean依賴的一種方式 Spring會在上下文中自動尋找&#xff0c;并自動給bean裝配屬性 在Spring中有三種裝配的方式&#xff1a; 1. 在xml中顯示配置 2. 在java中顯示配置 3. 隱式的自動裝配bean【重要】 測試 記得創建Cat、Dog、People類 public clas…

NI 5G大規模MIMO測試臺:將理論變為現實

目錄 概覽引言MIMO原型驗證系統MIMO原型驗證系統硬件LabVIEW通信系統設計套件&#xff08;簡稱LabVIEW Communications&#xff09;CPU開發代碼FPGA代碼開發硬件和軟件緊密集成 LabVIEW Communications MIMO應用框架MIMO應用框架特性單用戶MIMO和多用戶MIMO基站和移動站天線數量…

常用控件(三)

輸入類控件 QLineEditQTextEditQComboBoxQSpinBoxQDateTimeEditQDialQSlider QLineEdit QLineEdit用來表示單行輸入框&#xff0c;可以輸入一段文本&#xff0c;但是不能換行; 核心屬性: 屬性說明text輸入框中的文本inputMask輸入內容格式約束maxLength最大長度frame是否添加邊…

推薦算法有哪些?——協同過濾、內容推薦、DNN、FM、DeepFM

推薦算法是機器學習和數據挖掘領域的一個重要研究方向&#xff0c;旨在向用戶或群體推薦可能感興趣的物品或信息。 以下是對您提到的幾種推薦算法的詳細介紹&#xff1a; 1. 協同過濾&#xff08;Collaborative Filtering&#xff09; 定義&#xff1a;協同過濾是一種基于用…

FOLANNIC FD31 UPS工作原理介紹

1&#xff0e;1簡介 FOLANNIC FD31系列UPS系工業級電廠型不間斷電源&#xff0c;是為重要負載提供不受電網干擾、穩壓、穩頻的電力供應的電源設備&#xff0c;在市電掉電后&#xff0c;UPS可給負載繼續提供一段時間供電&#xff0c;此系列UPS采用帶輸出隔離變壓器的高頻雙變換結…

鏈表---頭插法+尾插法

本博客介紹了單鏈表的實現&#xff0c;以及頭插法尾插法的代碼實現 1.定義一個結點類 class ListNode{int value;ListNode next;public ListNode(int value) {super();this.value value;}Overridepublic String toString() {return "ListNode{" "value" …

Windows部署MySQL環境

一、下載MySQL數據庫 進入官網&#xff1a;https://www.mysql.com 找到紅框位置&#xff0c;點擊DOWNLOADS頁面下翻&#xff0c;找到紅框位置并點擊進入&#xff08;圖片右下方那個&#xff09; 選擇紅框部分 這里按照紅框選擇的是離線安裝&#xff0c;之間點擊download即可&…

【史上最全面ESP32】軟件中斷與硬件中斷

文章目錄 前言硬件中斷硬件中斷概念硬件中斷的使用 軟件中斷軟件中斷概念軟件中斷的使用 總結 前言 ESP32是一款高度集成的芯片&#xff0c;具有強大的中斷處理能力。在ESP32中&#xff0c;我們可以配置所有的GPIO引腳作為硬件中斷源&#xff0c;通過附加它們到相應的中斷服務…

JFlash讀取和燒錄加密stm32程序

JFlash讀取和燒錄加密stm32程序 安裝后JFlash所在的目錄&#xff1a;C:\Program Files\SEGGER\JLink 一、燒寫加密程序 1、打開C:\Program Files\SEGGER\JLink目錄&#xff0c;找到JFlash.exe,雙擊它&#xff0c;就可以打開該執行程序。見下圖&#xff1a; 2、選擇“Create …

代碼隨想錄算法訓練營第三十天 | 01背包問題 二維 01背包問題 一維 416. 分割等和子集

46. 攜帶研究材料&#xff08;第六期模擬筆試&#xff09; 題目描述 小明是一位科學家&#xff0c;他需要參加一場重要的國際科學大會&#xff0c;以展示自己的最新研究成果。他需要帶一些研究材料&#xff0c;但是他的行李箱空間有限。這些研究材料包括實驗設備、文獻資料和…