虛基類的關(guān)鍵字 設(shè)置虛基類的目的?
設(shè)置虛基類的目的?其目的是消除歧義。當(dāng)多個(gè)繼承路徑上存在公共基類時(shí),在多個(gè)路徑的匯合處,公共基類將生成多個(gè)實(shí)例(或多個(gè)副本)。如果只想保存基類的一個(gè)實(shí)例,可以將公共基類描述為虛擬基類。虛擬基類的基本原
設(shè)置虛基類的目的?
其目的是消除歧義。
當(dāng)多個(gè)繼承路徑上存在公共基類時(shí),在多個(gè)路徑的匯合處,公共基類將生成多個(gè)實(shí)例(或多個(gè)副本)。如果只想保存基類的一個(gè)實(shí)例,可以將公共基類描述為虛擬基類。
虛擬基類的基本原則是在內(nèi)存中只有其成員的一個(gè)副本。這樣,通過將基類繼承聲明為虛繼承,只能繼承基類的一個(gè)副本,從而消除了歧義。使用虛擬限定符將基類繼承描述為虛擬的。
C 引入虛基類的目的何在?
首先要知道的是,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ā)生