虛函式(持續更新)

2021-09-21 00:25:56 字數 2222 閱讀 8920

看**:

#include #include using namespace std;

class student

~student(){}

virtual void display()

protected:

string name;

int age;

float score;

};class grade :public student

void display()

protected:

float wage;

};int main()

其中使用student類申明指標,然後賦值grade類的指標就可以轉到grade類中,必須使用虛函式才可以。

其中過載是橫向過載,虛函式是縱向過載。

一般把基類的析構函式設定為虛函式,這樣有利於撤銷動態分配空間得到正確的處理。

純虛函式的寫法:virtual float area() = 0;

virtual 函式型別 函式名稱 (引數列表) = 0;

純虛函式在派生類中應用的時候必須帶有virtual 例如;

在派生類中: virtual float area ()

乙個比較完成的例子:

#include using namespace std;

class shape

~shape()

virtual float area() const

virtual float volume() const

virtual void shapename() const = 0;

};class point :public shape

void setpoint(float,float);

float getx()const

float gety()const

virtual void shapename()const ;

friend ostream & operator << (ostream &,const point &);

protected:

float x, y;

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

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

ostream & operator << (ostream & output, const point &p)

class circle :public point

; friend ostream & operator << (ostream &, const circle &);

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 << (ostream & output, const circle &c)

class cylinder :public circle

virtual float area() const;

virtual float volume()const;

virtual void shapename()const ;

friend ostream & operator << (ostream &, const cylinder &);

protected:

float height;

};cylinder::cylinder(float a, float b, float r, float h) :circle(a, b, r), height(h) {}

void cylinder::setheight(float h)

float cylinder::area() const

float cylinder::volume()const

ostream & operator << (ostream & output, const cylinder &y)

int main()

函式集錦(持續更新)

1.floor x 標頭檔案 cmath 不超過x的最大整數 向下取整 不會進行四捨五入。floor 3.14 3 floor 3.168 100 100 3.16 2.lower bound a,a n,x 標頭檔案 algorithm 已排序陣列a中找到不大於x的第乙個位置。位置 lower b...

一些函式(持續更新)

itertools模組的zip longest對於巢狀list的使用 文章中在變換句子矩陣的時候使用了itertools模組的zip longest函式。使用方法如下 batch list itertools.zip longest batch,fillvalue pad fillvalue就是要填...

python 程式設計常用函式(持續更新)

目錄 1.打亂列表元素順序 2.for迴圈取字典鍵 3.字典中加入元素 4.python中的非同步 5.統計列表中元素的個數 6.對數 from numpy import a list range 10 random.shuffle a print a a for i in a print i a ...