衡阳派盒市场营销有限公司

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 循環中的錯誤
    至尊国际娱乐| 有关百家乐官网玩家论坛| 豪华百家乐桌子| 百家乐怎样玩的| 金矿百家乐的玩法技巧和规则| 网页百家乐的玩法技巧和规则| 百家乐最好投注法是怎样的去哪儿能了解一下啊 | 信博娱乐| 澳门百家乐官网园游戏| 任我赢百家乐官网自动投注分析系统| 闲和庄百家乐官网娱乐网| 网上百家乐官网真的假| 百樂坊百家乐官网的玩法技巧和规则| 澳门百家乐指数| 百家乐一黑到底| 百家乐路书| 六合彩摇奖结果| 宝龙百家乐官网娱乐城| 淮安市| 百家乐官网赢钱| 24岁掉牙齿 风水| 百家乐电子路单谁| 大发888娱乐城登录| 百家乐官网如何计牌| 网上百家乐官网真坑人| 百家乐视频中国象棋| 澳门百家乐手机软件| 立博足球投注网| 百家乐官网赌博机有鬼吗| 百家乐破解版下载| 谁会玩百家乐的玩法技巧和规则| 莆田棋牌游戏中心| 百家乐官网下注所有组合| 澳门百家乐官网官方网站| 在线百家乐官网3d| 百家乐官网套利| 时时博百家乐的玩法技巧和规则| 澳门足球博彩网站| 百家乐官网赌博娱乐城| 网上百家乐有哪些玩法| 和记国际网上娱乐|