那曲檬骨新材料有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

C++之繼承中構造和析構學習的總結

電子設計 ? 來源:電子設計 ? 作者:電子設計 ? 2020-12-24 16:10 ? 次閱讀

在我們前面學習過類中的構造函數,以及析構函數,那么自然而然,在繼承關系中,必然是存在著析構和構造著。

一、子類對象的構造

1、問題的引出

如何初始化父類成員?

父類構造函數和子類構造函數有什么關系?

2、子類中的構造函數怎樣初始化父類成員:

子類中也是可以定義構造函數的:

--必須對繼承而來的成員進行初始化,那么怎樣初始化呢?這里有兩種方式:

-直接通過初始化列表或者賦值的方式進行初始化

-調用父類構造函數進行初始化

3、父類構造函數在子類中的調用方式

默認調用

-適用于無參構造函數和使用默認參數的構造函數

顯示調用

-通過初始化列表進行調用

-適用于所有父類構造函數

實踐代碼模板:

代碼實踐:

輸出結果:

注解:通過上面的代碼輸出結果,我們可以發現,子類定義的對象如果沒有沒有傳參,就隱式調用父類的構造函數;當然上面也使用了顯示調用,通過初始列表的就可以看出。

4、構造規則

子類對象在創建時會首先調用父類的構造函數

先執行父類構造函數再執行子類的構造函數

父類構造函數可以被隱式調用或者顯示調用

5、對象創建時構造函數的調用順序

(1)調用父類的構造函數

(2)調用成員變量的構造函數

(3)調用類自身的構造函數

總結:先父母,后客人,再自己

代碼實踐:

輸出結果:

注解:我們可以看到,先定義了一個Child對象,然后最先訪問Object帶參構造函數,然后再是Parent帶參構造函數(說白了就是父類先觸發),然后在子類Child中又包含了組合關系(也就是客人),然后Object類中的帶參構造函數,最后再觸發自身的帶參構造函數。

二、子類對象的析構

1、析構函數的調用順序與構造函數相反

(1)執行自身的析構函數

(2)執行成員變量的析構函數

(3)執行父類的析構函數

代碼實踐:

輸出結果:

三、總結:

子類對象在創建時需要調用父類構造函數進行初始化

先執行父類構造函數然后執行成員的構造函數

父類構造函數顯示調用需要在初始化列表中進行

子類對象在銷毀時需要調用父類析構函數進行清理

析構順序與構造順序對稱相反

審核編輯:符乾江
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 可編程邏輯
    +關注

    關注

    7

    文章

    517

    瀏覽量

    44181
  • C++
    C++
    +關注

    關注

    22

    文章

    2114

    瀏覽量

    73857
收藏 人收藏

    評論

    相關推薦

    Spire.XLS for C++組件說明

    Spire.XLS for C++ 是一款專業的 C++ Excel 組件,可以用在各種 C++ 框架和應用程序。Spire.XLS for C+
    的頭像 發表于 01-14 09:40 ?145次閱讀
    Spire.XLS for <b class='flag-5'>C++</b>組件說明

    EE-112:模擬C++的類實現

    電子發燒友網站提供《EE-112:模擬C++的類實現.pdf》資料免費下載
    發表于 01-03 15:15 ?0次下載
    EE-112:模擬<b class='flag-5'>C++</b><b class='flag-5'>中</b>的類實現

    運動控制卡周期上報實時數據IO狀態C++

    使用C++進行運動控制卡的周期上報功能實現
    的頭像 發表于 12-17 13:59 ?342次閱讀
    運動控制卡周期上報實時數據IO狀態<b class='flag-5'>之</b><b class='flag-5'>C++</b>篇

    同樣是函數,在CC++中有什么區別

    同樣是函數,在 CC++ 中有什么區別? 第一個返回值。 C語言的函數可以不寫返回值類型,編譯器會默認為返回 int。 但是 C++ 的函數,除了
    的頭像 發表于 11-29 10:25 ?429次閱讀

    C語言中申請的堆內存能不能自動釋放

    C語言中申請的堆內存能不能自動釋放?每次都要手動 free 太麻煩,也容易忘記。 學過 C++ 的同學,應該首先能想到智能指針。 但是這是C語言,沒有類和對象、構造
    的頭像 發表于 11-27 09:33 ?168次閱讀

    C語言和C++結構體的區別

    同樣是結構體,看看在C語言和C++中有什么區別?
    的頭像 發表于 10-30 15:11 ?356次閱讀

    C7000優化C/C++編譯器

    電子發燒友網站提供《C7000優化C/C++編譯器.pdf》資料免費下載
    發表于 10-30 09:45 ?0次下載
    <b class='flag-5'>C</b>7000優化<b class='flag-5'>C</b>/<b class='flag-5'>C++</b>編譯器

    ostream在c++的用法

    ostream 是 C++ 標準庫中一個非常重要的類,它位于 頭文件(實際上,更常見的是通過包含 頭文件來間接包含 ,因為 包含了 和 )。 ostream 類及其派生類(如 std::cout
    的頭像 發表于 09-20 15:11 ?941次閱讀

    基于OpenHarmony標準系統的C++公共基礎類庫案例:SafeQueue

    1、程序簡介該程序是基于OpenHarmony的C++公共基礎類庫的線程安全隊列:SafeQueue。線程安全隊列,是在dequeue的基礎上封裝std::lock_guard,以此實現線程的相關
    的頭像 發表于 08-30 12:41 ?369次閱讀
    基于OpenHarmony標準系統的<b class='flag-5'>C++</b>公共基礎類庫案例:SafeQueue

    基于OpenHarmony標準系統的C++公共基礎類庫案例:SafeStack

    1、程序簡介該程序是基于OpenHarmony的C++公共基礎類庫的線程安全隊列:SafeQueue。線程安全隊列,是在dequeue的基礎上封裝std::lock_guard,以此實現線程的相關
    的頭像 發表于 08-30 12:41 ?385次閱讀
    基于OpenHarmony標準系統的<b class='flag-5'>C++</b>公共基礎類庫案例:SafeStack

    C++語言基礎知識

    電子發燒友網站提供《C++語言基礎知識.pdf》資料免費下載
    發表于 07-19 10:58 ?7次下載

    C++實現類似instanceof的方法

    C++有多態與繼承,但是很多人開始學習C++,有時候會面臨一個常見問題,就是如何向下轉型,特別是不知道具體類型的時候,這個時候就希望C++
    的頭像 發表于 07-18 10:16 ?673次閱讀
    <b class='flag-5'>C++</b><b class='flag-5'>中</b>實現類似instanceof的方法

    C/C++兩種宏實現方式

    #ifndef的方式受C/C++語言標準支持。它不僅可以保證同一個文件不會被包含多次,也能保證內容完全相同的兩個文件(或者代碼片段)不會被不小心同時包含。
    的頭像 發表于 04-19 11:50 ?701次閱讀

    鴻蒙OS開發實例:【Native C++

    使用DevEco Studio創建一個Native C++應用。應用采用Native C++模板,實現使用NAPI調用C標準庫的功能。使用C標準庫hypot接口計算兩個給定數平方和的平
    的頭像 發表于 04-14 11:43 ?2765次閱讀
    鴻蒙OS開發實例:【Native <b class='flag-5'>C++</b>】

    使用 MISRA C++:2023? 避免基于范圍的 for 循環中的錯誤

    在前兩篇博客,我們?向您介紹了新的 MISRA C++ 標準?和?C++ 的歷史?。在這篇博客,我們將仔細研究以 C++
    的頭像 發表于 03-28 13:53 ?861次閱讀
    使用 MISRA <b class='flag-5'>C++</b>:2023? 避免基于范圍的 for 循環中的錯誤
    百家乐群柏拉图软件| 百家乐免费破解外挂| 合乐娱乐| 澳门百家乐游戏皇冠网| 百家乐官网波音平台路单| 网络百家乐会作假吗| 百家乐官网2号技术| 玩博论坛| 金银岛百家乐的玩法技巧和规则| 百家乐官网打法介绍| 龙游县| 大发888集团| 百家乐官网最佳注码法| 马牌娱乐城| 大发888娱乐城下载英皇国际| 百家乐官网永利娱乐| 玩百家乐官网技巧博客| 多台百家乐官网的玩法技巧和规则 | 百家乐技巧-百家乐开户指定代理网址 | 威尼斯人娱乐城图片| 百家乐保单破解方法| 百家乐官网平台租用| 百家乐路单| 哪个百家乐网站最大| 武汉百家乐官网庄闲和| 百家乐官网游戏平台架设| 宜章县| 四川省| 兰考县| 盈博国际娱乐城| 博彩娱乐场| 一起pk棋牌游戏| 德州扑克怎么玩| 波克棋牌斗地主| 大发888官方 df888| 大发888黄金版娱乐场| 德州扑克下载| tt娱乐城怎么样| 同乐城娱乐城| 宜君县| 百家乐官网牌机的破解法|