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 中的虛擬函式的作用主要是實現了多型的機制。關於多型,簡而言之就是用父型別別的指標指向其子類的例項,然後通過父類的指標呼叫實際子類的成員函式。這種技術可以讓父類的指標有 多種形態 這...