C 純虛函式與抽象類

2021-08-03 21:43:20 字數 875 閱讀 1183

一,純虛函式

c++通過使用純虛函式來提供未實現的函式,純虛函式宣告的結尾處為 = 0,下面是乙個純虛函式的宣告

class shape;

注意:c++允許為純虛函式提供定義,但是呼叫它的唯一途徑是在呼叫時指出其class名稱,這個性質基本上不會被用到。

#includeusing namespace std;

class shape;

void shape::draw() const

二,抽象類

1,為什麼要使用抽象類?

在實際的使用過程中我們發現,建立某些類的例項是沒有意義的,例如:現在我們有乙個動物類,建立乙個動物類物件毫無意義。抽象類的唯一作用是作為派生類的基類。

2,如何宣告乙個抽象類?

當乙個類中包含乙個純虛函式,那麼這個類就是乙個抽象類。

3,抽象類的特點

a,抽象類不能例項化。

b,如果派生類不實現基類的純虛函式,那麼派生類也是乙個抽象類。

三,虛函式與純虛函式的區別

1,虛函式必須提供函式定義,不然在編譯時會出錯。純虛函式可以提供也可以不提供函式定義。

2,在許多情況下基類本身生成物件是不合理的,純虛函式的作用就是把乙個類變成抽象類,在派生類中去實現純虛函式。使用虛函式的主要目的是為了實現多型。

C 純虛函式與抽象類

純虛函式 純虛函式 在基類中將某一成員函式定為虛函式,並不是基類本身的需要,而是考慮到派生類的需 要,在基類中預留了乙個函式名,具體功能留給派生類根據需要去定義。純虛函式是在宣告虛函式時被 初始化 為0的函式。一般形式為 virtual 函式型別 函式名 引數列表 0 如 virtual float...

C 純虛函式與抽象類

在很多的情況下,在基類中一般都不能給出虛函式的具體而有意義的定義,這時我們就可以將它說明為純虛函式。它的具體的定義由它的派生類具體完成,這樣可以使類之間的結構更加清晰,同時也更容易理解。含有純虛函式的類叫抽象類。說明純虛函式的一般格式 class 類名 virtual 返回值型別 函式名 引數列表 ...

C 純虛函式與抽象類

參考 純虛函式 是一種特殊的虛函式,是基類中只有宣告,無 法實現 定義的虛函式。含有純虛函式的類稱為 抽象類 ifndef purevir h define purevir h define pi 3.14159 namespace purev 基類為 抽象類 的派生類都必須定義自己的,和純虛函式同...