国产成人毛片视频|星空传媒久草视频|欧美激情草久视频|久久久久女女|久操超碰在线播放|亚洲强奸一区二区|五月天丁香社区在线|色婷婷成人丁香网|午夜欧美6666|纯肉无码91视频

虛基類的關(guān)鍵字 有虛基類時(shí),多繼承構(gòu)造函數(shù)調(diào)用順序?

在任何非虛擬基類構(gòu)造函數(shù)之前調(diào)用虛擬基類的構(gòu)造函數(shù)。如果構(gòu)造中包含多個(gè)虛擬基類,則它們的調(diào)用順序?yàn)槁暶黜樞颉H绻摂M類是從非虛擬類派生的,則首先調(diào)用非虛擬類的構(gòu)造函數(shù)。以下是一個(gè)示例:X類:公共y,虛

在任何非虛擬基類構(gòu)造函數(shù)之前調(diào)用虛擬基類的構(gòu)造函數(shù)。如果構(gòu)造中包含多個(gè)虛擬基類,則它們的調(diào)用順序?yàn)槁暶黜樞?。如果虛擬類是從非虛擬類派生的,則首先調(diào)用非虛擬類的構(gòu)造函數(shù)。

以下是一個(gè)示例:

X類:公共y,虛公共Z

x one

調(diào)用順序如下:

Z()//虛基類初始化

y()//非虛基類

x()//繼承類

有虛基類時(shí),多繼承構(gòu)造函數(shù)調(diào)用順序?

根據(jù)C對虛基類構(gòu)造函數(shù)的“最新一代派生”調(diào)用規(guī)則,所有虛基類構(gòu)造函數(shù)必須系統(tǒng)中由A構(gòu)造的虛基類有兩個(gè):C和E,但由于E是C的基類,所以首先調(diào)用E的構(gòu)造函數(shù)(這是第一個(gè)類),C有一個(gè)基類D,它也調(diào)用構(gòu)造函數(shù)(這是第二個(gè)類),然后調(diào)用C的構(gòu)造函數(shù)(這是第三個(gè)類)。

C初始化后,B初始化,B有兩個(gè)基類D和E。E是已初始化的虛擬基類,然后是基類D,應(yīng)首先調(diào)用其構(gòu)造函數(shù)(這是第四個(gè)),然后調(diào)用B自己的構(gòu)造函數(shù)(這是第五個(gè))。c和B都被初始化,最后調(diào)用a的構(gòu)造函數(shù)(這是第六個(gè))。

所以整個(gè)順序是e,D,C,D,B,a。

C 多重繼承構(gòu)造函數(shù)的調(diào)用次序問題?

首先要知道的是,C是為數(shù)不多的支持“多重繼承”的語言之一。多重繼承帶來了許多問題,其中之一就是鉆石繼承:classAclassB:公共許可證:公共ICAD類:公共為了解決這個(gè)問題,引入了虛擬基類的概念。在實(shí)際開發(fā)中,這種情況是可以避免的?;旧希鼈兝^承一個(gè)類并實(shí)現(xiàn)多個(gè)“接口”。在C語言中沒有接口概念,但是只有純虛函數(shù)的類本質(zhì)上是一個(gè)接口。在C中沒有實(shí)現(xiàn)接口的概念,但是繼承一個(gè)只有純虛函數(shù)的類本質(zhì)上就是實(shí)現(xiàn)一個(gè)接口。這就是C中多重繼承的一般用法。這降低了設(shè)計(jì)的復(fù)雜性,減少了問題的發(fā)生