C 中純虛擬函式和空的虛擬函式各自的作用是什麼呢?他們應該怎麼

2021-05-14 05:53:29 字數 504 閱讀 7114

1樓:匿名使用者

虛擬函式是baic++多型的一種表現

du例如:子類繼承了

zhi父類的一個函式dao(方法),內

而我們把父類容的指標指向子類,則必須把父類的該函式(方法)設為virturl(虛擬函式)。

使用虛擬函式,我們可以靈活的進行動態繫結,當然是以一定的開銷為代價。

如果父類的函式(方法)根本沒有必要或者無法實現,完全要依賴子類去實現的話,可以把此函式(方法)設為virturl 函式名=0

我們把這樣的函式(方法)稱為純虛擬函式。

如果一個類包含了純虛擬函式,稱此類為抽象類

2樓:利德

虛擬函式是用來實現bai多型的.

在基類中聲du明一個普通的虛函zhi數,你需dao要給它一個實現,如果是純專虛擬函式,就可屬以只有宣告,不要定義.

這樣的作用是虛擬函式定義一個介面,並且提供一個預設的操作,純虛擬函式定義一個介面,但是沒有預設操作,強制繼承它的子類都必須實現自己的操作

c純虛擬函式,C 中純虛擬函式有什麼作用

純虛擬函式就是抽象類函式。宣告是virtual void fn 0 沒有實現體的函式。補充一點,含有純虛擬函式的類是抽象類 純虛擬函式是一種特du殊的虛函zhi數,它的一般格式dao如下 專class 類名 屬 在許多情況下,在基類中不能對虛擬函式給出有意義有實現,而把它說明為純虛擬函式,它的實現留...

有純虛擬函式的類和有虛擬函式的類相比,又有什麼區別

純虛擬函式的類在其派生類中必須定義自己這個函式的版本,而且純虛擬函式是沒有實際意義的,他的目的告知編譯器派生類將會定義自己的版本。類中擁有純虛擬函式表示這個類是抽象類,不存在此類的物件。而虛擬函式僅表示派生類可以定義自己的版本,但是基類也可以有意義,若沒有定義自己的版本,將使用基類的版本。純虛擬函式...

c在父類宣告純虛擬函式怎樣在父類建構函式

不能,就算中bai轉一下也不行,du因為這個zhi時候還虛擬函式表還沒有dao改寫,也就是說版純虛函權 數還沒有實現,函式指標指是空的。這是時序的問題。執行之後會報這個錯誤 libc abi.dylib pure virtual function called 1 2417 abort test而且...