C/C++基礎學習:純虛函數的概念和引用

 


 

1、純虛函數定義編程

純虛函數是一種特殊的虛函數,它的通常格式以下:數組

class <類名>函數

{學習

virtual <類型><函數名>(<參數表>)=0;spa

視頻

};對象

在許多狀況下,在基類中不能對虛函數給出有意義的實現,而把它聲明爲純虛函數,它的實現留給該基類的派生類去作。這就是純虛函數的做用。blog

純虛函數可讓類先具備一個操做名稱,而沒有操做內容,讓派生類在繼承時再去具體地給出定義。凡是含有純虛函數的類叫作抽象類。繼承

這種類不能聲明對象,只是做爲基類爲派生類服務。除非在派生類中徹底實現基類中全部的的純虛函數,不然,派生類也變成了抽象類,不能實例化對象。教程

2、純虛函數引入緣由

一、爲了方便使用多態特性,咱們經常須要在基類中定義虛擬函數。

二、在不少狀況下,基類自己生成對象是不合情理的。例如,動物做爲一個基類能夠派生出老虎、孔 雀等子類,但動物自己生成對象明顯不合常理。

爲了解決上述問題,引入了純虛函數的概念,將函數定義爲純虛函數(方法:virtual ReturnType Function()= 0;)。

若要使派生類爲非抽象類,則編譯器要求在派生類中,必須對純虛函數予以重載以實現多態性。同時含有純虛函數的類稱爲抽象類,它不能生成對象。

這樣就很好地解決了上述兩個問題。

例如,繪畫程序中,shape做爲一個基類能夠派生出圓形、矩形、正方形、梯形等, 若是我要求面積總和的話,那麼會可使用一個 shape * 的數組,只要依次調用派生類的area()函數了。

若是不用接口就無法定義成數組,由於既能夠是circle ,也能夠是square ,並且之後可能加上rectangle,等等.

3、類似概念

一、多態性

指相同對象收到不一樣消息或不一樣對象收到相同消息時產生不一樣的實現動做。C++支持兩種多態性:編譯時多態性,運行時多態性。

a.編譯時多態性:經過重載函數實現

b 運行時多態性:經過虛函數實現。

二、虛函數

虛函數是在基類中被聲明爲virtual,並在派生類中從新定義的成員函數,可實現成員函數的動態重載

三、抽象類

包含純虛函數的類稱爲抽象類。因爲抽象類包含了沒有定義的純虛函數,因此不能定義抽象類的對象。


 

另外若是你想更好的提高你的編程能力,學好C語言C++編程!彎道超車,快人一步!筆者這裏或許能夠幫到你~

分享(源碼、項目實戰視頻、項目筆記,基礎入門教程)

歡迎轉行和學習編程的夥伴,利用更多的資料學習成長比本身琢磨更快哦!

編程學習書籍:


 

編程學習資料:

相關文章
相關標籤/搜索