純虛函式的應用

2021-10-25 07:45:27 字數 1267 閱讀 4863

純虛函式的定義

在c++中,只有虛函式才能被宣告為純虛函式,語法格式為:

virtual 返回值型別 函式名(函式引數)=0;
其中,純虛函式沒有函式體,只有函式宣告,也就是在類中的虛成員函式後面加上=0,來表示這是乙個純虛函式。

2. 純虛函式的應用

包含純虛函式的類稱為抽象類,所謂的抽象類也就是所無法被例項化,這是因為該類中的純虛函式只有宣告,而沒有定義,所以無法被例項化,因而無法建立物件。抽象類通常作為基類,讓派生類去實現純虛函式的定義,派生類必須完整的實現純虛函式才能被例項化。

乙個例子:

#include#includeusing namespace std;

//線class line;

line::line(float len) :m_len(len){}

//矩形

class rec :public line;

rec::rec(float len, float width) :line(len), m_width(width){}

float rec::area()

//rec仍然無法被例項化,因為純虛函式沒有完全被定義

//長方體

class cuboid :public rec

;cuboid::cuboid(float len, float width, float height) :rec(len, width), m_height(height){}

float cuboid::area()

float cuboid::volume() //可以例項化了

//正方體

class cube :public cuboid

;cube::cube(float len) :cuboid(len, len, len) {}

float cube::area()

float cube::volume()

int main()

3. 總結

在實際開發中,可以先定義乙個抽象類,只完成部分功能,未完成的功能交給派生類來完成,這部分功能往往是基類是不需要的,雖然抽象基類沒能完成,可是卻要求派生類來完成。

抽象基類中除了包含純虛函式外,還可以定義其他成員變數和成員函式。

只有類中的虛函式才能被定義為純虛函式,普通成員函式和頂層函式均不能被宣告為純虛函式。

虛函式 純虛函式

一 定義.純虛函式是在基類中宣告的虛函式,它在基類中沒有定義,但要求任何派生類都要定義自己的實現方法。在基類中實現純虛函式的方法是在函式原型後加 0 virtual void funtion1 0 二 引入原因 1 為了方便使用多型特性,我們常常需要在基類中定義虛函式。2 在很多情況下,基類本身生成...

虛函式 純虛函式

虛函式的作用是允許在派生類中重新定義與基類同名的函式,並且可以通過基類指標引用來訪問基類和派生類中的同名函式。include using namespace std class student student類成員函式的實現 宣告抽象基類shape class shape virtual float...

虛函式和純虛函式

除了繼承外,c 的另乙個優良特性是支援多型,即允許將派生類的物件當作基類的物件使用。如果a是基類,b和c是a的派生類,多態函式test的引數是a的指標。那麼test函式可以引用a b c的物件。示例程式如下 class a void test a a class b public a class c...