日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

C/C++继承与派生

發布時間:2023/11/30 c/c++ 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C/C++继承与派生 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

(1)派生類的訪問屬性

? ? ? ? ? ?1)public繼承:派生類中:可以訪問基類的public和protect變量,不可以訪問基類的private變量

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 派生類外:可以訪問基類的public變量,不能訪問基類的private變量

? ? ? ? ? ? 2)protect繼承:派生類中:可以訪問基類的public和protect變量,不可以訪問基類的private變量

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?派生類外:都不可以訪問

? ? ? ? ? ? 3)private繼承:派生類中:都不可以訪問

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?派生類外:都不可以訪問

(2)派生類的構造函數

? ? ? ? ? ? ? ? 派生類中包含所有基類的數據成員和派生類中新增的數據成員(包括其他類的對象(子對象)和普通數據成員)。

? ? ? ? ? 1)對于基類成員和子對象成員的初始化必須在成員初始化列表中進行,新增成員的初始化既可以在成員初始化列表中進行,也可以在構造函數體中進行。

? ? ? ? ? 2)派生類構造函數的初始化順序:基類的構造函數,子對象的構造函數,派生類構造函數體。

? ? ? ? ?3)當派生類中出現多個基類時,處于同一層次的各個基類的構造函數的調用順序取決于定義派生類時聲明的順序(自左向右),而與派生類構造函數的成員初始化列表給出的順序無關

? ? ? ? ?4)如果派生類的基類也是一個派生類,則每個派生類只需復雜其直接基類的構造,依次上溯。

? ? ? ? ?5)當派生類中有多個子對象時,各個子對象的構造函數的調用順序也取決于派生類宏定義的順序(自前往后),而與派生類構造函數的成員初始化列表給出的順序無關。

? ? ? ? ?6)派生類構造函數提供將參數傳遞給基類構造函數的途徑,以保證基類進行初始化時能夠獲得必要的順序,如果基類的構造函數中定義了一個或多個參數,派生類必須定義構造函數。

? ? ? ? ?7)如果基類定義了默認構造函數或根本沒有定義一個構造函數,在派生類構造函數的定義中可以省略對基類構造函數的調用。

? ? ? ? ?8)子對象的情況同7)基類。

? ? ? ? ?9)當所有的基類或子對象的構造函數都可以省略時,可以省略派生類構造函數的成員初始化列表。

? ? ? ? 10)如果所有基類和子對象都不需要參數,派生類也不需要參數時,派生類構造函數可以不定義。

(3)派生類的析構函數

? ? ? ? ? ? 在派生時,派生類不能繼承基類的析構函數,但是需要通過派生類的析構函數去調用基類的析構函數,析構函數的調用順序與構造函數的調用順序正好相反,首先調用派生類的析構函數,然后調用成員類對象的析構函數,最后調用基類的析構函數。

? ? ? ? ? ? 析構函數調用場景:

? ? ? ? ? ? ? ? ? ? ? 1)對象生命周期結束被銷毀時(一般類成員的指針變量與引用都不自動調用析構函數)。

? ? ? ? ? ? ? ? ? ? ? 2)delete指向對象的指針時,或delete指向對象的基類類型指針,而其基類虛構函數是虛函數時。

? ? ? ? ? ? ? ? ? ? ? 3)對象i是對象o的成員,o的析構函數被調用時,對象i的析構函數也被調用。?

總結

以上是生活随笔為你收集整理的C/C++继承与派生的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。