日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學(xué)無(wú)先后,達(dá)者為師

網(wǎng)站首頁(yè) 編程語(yǔ)言 正文

C++繼承關(guān)系下的構(gòu)造與析構(gòu)

作者:摁回車(chē)的大雷 更新時(shí)間: 2022-09-26 編程語(yǔ)言

類(lèi)中成員的訪問(wèn)權(quán)限

Y代表可以訪問(wèn),N代表不可訪問(wèn)

繼承方式 本類(lèi) 派生類(lèi) 類(lèi)外
public Y Y Y
protected Y Y N
private Y N N

繼承方式對(duì)子類(lèi)訪問(wèn)父類(lèi)成員的影響

繼承方式 子類(lèi)繼承來(lái)的成員的訪問(wèn)權(quán)限
public 繼承來(lái)的這些成員在子類(lèi)中還是原來(lái)的權(quán)限
protected 原來(lái)的權(quán)限為public的成員在子類(lèi)中變?yōu)閜rotected,其他兩種不變
private 繼承來(lái)的成員在子類(lèi)中權(quán)限都變?yōu)閜rivate

例如,類(lèi)B以私有方式繼承了類(lèi)A,那么從類(lèi)A繼承來(lái)的成員在類(lèi)B中都是私有成員,原來(lái)類(lèi)A中可以在類(lèi)外訪問(wèn)的公有數(shù)據(jù)成員a,現(xiàn)在在類(lèi)B中只能在類(lèi)中訪問(wèn),如果再有類(lèi)C繼承B的時(shí)候,無(wú)論以哪種方式,都不能在類(lèi)C中訪問(wèn)a了。

派生類(lèi)構(gòu)造函數(shù)的格式

格式:
派生類(lèi)名::派生類(lèi)名(參數(shù)總表):基類(lèi)名1(參數(shù)表1),基類(lèi)名2(參數(shù)表2),......,新增成員名1(參數(shù)1),新增成員名2(參數(shù)2){}

  1. 如果基類(lèi)中沒(méi)有定義帶參數(shù)的構(gòu)造函數(shù),派生類(lèi)的構(gòu)造函數(shù)可以不加基類(lèi)名和參數(shù)表;
  2. 如果基類(lèi)中沒(méi)有定義默認(rèn)構(gòu)造函數(shù)或帶有缺省值的構(gòu)造函數(shù)而只有帶參數(shù)的構(gòu)造函數(shù)時(shí),派生類(lèi)的構(gòu)造函數(shù)中必須顯式的給出基類(lèi)名和參數(shù)表,否則編譯器將報(bào)錯(cuò)

構(gòu)造函數(shù)與析構(gòu)函數(shù)的調(diào)用時(shí)機(jī)

作用域、內(nèi)存區(qū)間、生命周期:

  1. 全局變量在程序開(kāi)始時(shí)調(diào)用構(gòu)造函數(shù)、在程序結(jié)束時(shí)調(diào)用析構(gòu)函數(shù)。
  2. 靜態(tài)變量在所在函數(shù)第一次被調(diào)用時(shí)調(diào)用構(gòu)造函數(shù)、在程序結(jié)束時(shí)調(diào)用析構(gòu)函數(shù),只調(diào)用一次。
  3. 局部變量在所在的代碼段被執(zhí)行時(shí)調(diào)用構(gòu)造函數(shù),在離開(kāi)其所在作用域(大括號(hào)括起來(lái)的區(qū)域)時(shí)調(diào)用析構(gòu)函數(shù)。可以調(diào)用任意多次。

繼承關(guān)系:(派生類(lèi)在實(shí)例化對(duì)象時(shí))

  1. 先調(diào)用基類(lèi)的構(gòu)造函數(shù),再調(diào)用子對(duì)象類(lèi)(成員變量)的構(gòu)造函數(shù),最后調(diào)用派生類(lèi)的構(gòu)造函數(shù);
  2. 調(diào)用順序與派生類(lèi)構(gòu)造函數(shù)冒號(hào)后面給出的初始化列表的順序沒(méi)有任何關(guān)系,按照繼承的順序和變量在類(lèi)里面定義的順序進(jìn)行初始化。 先繼承,先構(gòu)造;先定義,先構(gòu)造。
  3. 析構(gòu)函數(shù)調(diào)用順序仍然與構(gòu)造函數(shù)構(gòu)造順序相反。
  4. 每次調(diào)用析構(gòu)函數(shù)時(shí)總是析構(gòu)最近被構(gòu)造的、且沒(méi)有被析構(gòu)的對(duì)象。也就是:先被構(gòu)造的對(duì)象后被析構(gòu),析構(gòu)順序恰與構(gòu)造順序相反。(棧模型)

原文鏈接:https://blog.csdn.net/qq_41796226/article/details/126997683

欄目分類(lèi)
最近更新