虛擬函式和虛基類的區別是什麼啊,c 中虛擬函式與純虛擬函式的區別是什麼?

2021-04-19 01:29:43 字數 2339 閱讀 6464

1樓:阿笨

虛擬函式 , 虛基類,它們都和virtual有關,這兩個帶有虛字的定義容易使人混淆,回下面先從作用答

上來解釋這兩個定義的區別:

1.虛擬函式是用於多型中virtual修飾父類函式,確保父類指標呼叫子類物件時,執行子類函式的。

2、.虛基類是用來在多繼承中,如果父類繼承自同一個父類,就只例項化一個父類(說的有點繞,就是隻例項化一個爺爺的意思。

具體區別登陸詳詢。

2樓:匿名使用者

虛基類j就是由虛擬函式這樣定義virtual f(...) = 0

這樣的類用來做介面,不能例項化,

虛擬函式明顯是用來表示類裡的介面動作的

3樓:匿名使用者

函式和類有相似之處?虛擬函式在派生類裡必須被實現,虛基類則一定包含純虛擬函式,不能被例項化,和介面有點相似。好好看看書吧

4樓:匿名使用者

我來更正一下 後面=0的叫純虛擬函式。

5樓:任魄百里天翰

虛擬函式主要是用來產生派生類與基類之間的多型性.

虛基類主要是用來解決多重派生引起的兩議性問題

c++中虛擬函式與純虛擬函式的區別是什麼?

6樓:月無痕

虛擬函式與純虛擬函式 在他們的子類中都可以被重寫。它們的區別是:

(1)純虛擬函式只有定義,沒有實現;而虛擬函式既有定義,也有實現的**。

純虛擬函式一般沒有**實現部分,如

virtual void print() = 0;

而一般虛擬函式必須要有**的實現部分,否則會出現函式未定義的錯誤。

virtual void print()

(2)包含純虛擬函式的類不能定義其物件,而包含虛擬函式的則可以。

c++中 抽象類和虛基類用途上有什麼區別

7樓:金色潛鳥

語法上有抽象類和虛基類,不等於你一定要用它。花裡胡哨的東西,我通常不用。

我能想到的抽象類用處,大概這個優點可以用一用:

含有純虛擬函式的類都是抽象類。基類中實際上並不使用這個函式,它只是通知編譯系統:

在這裡宣告一個虛擬函式,留待在派生類中定義。為一個類族提供一個公共介面。

例如,計算平面形狀的面積,抽象類 基類中 virtual float area( ) const =0;

派生類三角形,派生類圓 各自定義了 area( ) 具體的計算。一旦有了派生的三角形或圓,我們可以用同樣的函式名.area( ) 計算面積。

虛基類,它的構建要在派生類裡做,而且先於派生類自己的構建。當有派生類1,派生類2,生成的派生類12時,派生類12只執行一次虛基類的構建。虛基類的物件只有唯一一個。

至於它有什麼特殊用途,沒想到。

8樓:du小蝦

虛基類是相對於它的派生類而言的,它本身可以是一個普通的類。

只有它的派生類虛繼承它的時候,它才稱作虛基類,如果沒有虛繼承的話,就稱為基類。比如類b虛繼承於類a,那類a就稱作類b的虛基類,如果沒有虛繼承,那類b就只是類a的基類。

虛繼承主要用於一個類繼承多個類的情況,避免重複繼承同一個類兩次或多次。

例如 由類a派生類b和類c,類d又同時繼承類b和類c,這時候類d就要用虛繼承的方式避免重複繼承類a兩次。

而抽象類是指帶有有一個或一個以上的純虛擬函式的類。抽象類一般值用於繼承,不能定義類物件,但可以定義類指標和引用

c++ 純虛類與虛基類的區別與聯絡?

9樓:匿名使用者

沒有純許抄類,只有純虛擬函式,襲也就是沒有實現的虛擬函式。

virtual void foo() = 0;這樣的,需要子類去實現

虛基類是,如果兩個類都把一個類a作為虛基類。如果類b同時繼承那兩個類的話,b中只會包含有一個a。否則如果a沒有作為虛基類被繼承,b中會包含兩個a。

10樓:匿名使用者

純虛類不能例項化,只能作為基類,一般是類中虛擬函式有=0,沒有實現體,而虛基類可能可以例項化,或者說虛基類包括了純虛類

11樓:匿名使用者

c++ 沒有 abstract 一說

只有 virtual 是關鍵字

c/c++面試題:虛擬函式與純虛擬函式有什麼區別

c++中虛擬函式和純虛擬函式的作用與區別

12樓:匿名使用者

包含純虛擬函式的類不可以例項化。

《c中虛擬函式與純虛擬函式的區別是什麼

虛擬函式與純虛擬函式 在他們的子類中都可以被重寫。它們的區別是 1 純虛擬函式只有定義,沒有實現 而虛擬函式既有定義,也有實現的 純虛擬函式一般沒有 實現部分,如 virtual void print 0 而一般虛擬函式必須要有 的實現部分,否則會出現函式未定義的錯誤。virtual void pr...

C虛擬函式和純虛擬函式的區別,c中虛擬函式與純虛擬函式的區別是什麼?

虛擬函式與純虛擬函式 在他們的子類中都可以被重寫。它們的區別是 1 純虛擬函式只有定義,沒有實現 而虛擬函式既有定義,也有實現的 純虛擬函式一般沒有 實現部分,如 virtual void print 0 而一般虛擬函式必須要有 的實現部分 c 中 虛擬函式與純虛擬函式的區別是什麼?虛擬函式與純虛擬...

c中的虛擬函式是什麼,c中虛擬函式與純虛擬函式的區別是什麼?

c 中的虛擬函式是允許在派生類中重新定義與基類同名的函式,並且可以通過基類指標或引用來訪問基類和派生類中的同名函式。c 中的虛擬函式的作用主要是實現了多型的機制。關於多型,簡而言之就是用父型別別的指標指向其子類的例項,然後通過父類的指標呼叫實際子類的成員函式。這種技術可以讓父類的指標有 多種形態 這...