虛函式 純虛函式

2021-07-10 05:31:28 字數 1780 閱讀 9027

虛函式的作用是允許在派生類中重新定義與基類同名的函式,並且可以通過基類指標引用來訪問基類和派生類中的同名函式。

#include

using namespace std;

class student

;//student類成員函式的實現

//宣告抽象基類shape

class shape

virtual

float volume()const

virtual

void shapename() const=0; //純虛函式

/*由於考慮到在point類中不再對area和volume函式進行重新定義,因此沒有吧area和volume也宣告為純虛函式*/

};class point:public shape

float gety() const

virtual

void shapename() const //對純虛函式進行再定義

friend ostream & operator

<

protected:

float x,y;

};point::point(float a,float b)

void point::setpoint(float a, float b)

ostream &operator

<

class circle:public point

friend ostream & operator

<

protected:

float radius;

};circle::circle(float a,float b,float r):point(a,b),radius(r){}

void circle::setradius(float r)

float circle::getradius()const

float circle::area() const

ostream &operator

<

class cylinder:public circle

friend ostream &operator

<

protected:

float height;

};cylinder::cylinder(float x, float y, float r, float h):circle(x,y,r),height(h)

void cylinder::setheight(float h)

float cylinder::area() const

float cylinder::volume() const

ostream &operator

<

int main()

虛函式 純虛函式

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

虛指標,虛函式,虛函式表,純虛函式

虛指標 虛繼承 在使用多重繼承時,如存在 class a 有m a變數 class a1 virtual public a,m a1 class a2 virtual public a m a2 class b public a1,public a2 m b 時 存在以下記憶體儲存順序 虛指標 指向...

虛函式和純虛函式

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