純虛函式的定義
在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...