純虛函式和抽象類

2021-08-08 03:25:46 字數 1478 閱讀 4146

一.純虛函式和抽象類的概念:

用**顯示:

class figure//抽象類

;

注意一下幾點:

figure c1;//錯誤,抽象類不能建立物件

figure *p = null;//正確,抽象類可以宣告自己的指標

figure fun();//錯誤,抽象類不能作為返回型別

void fun(figure);//錯誤,抽象類不能作為引數型別

figure &h(figure &);//正確,抽象類可以宣告抽象類的引用

接下來看乙個案例:

class figure//抽象類

;class ******** :public figure

virtual void fun()

virtual void fun()

virtual void fun() };

void test(figure *base)//建立虛函式的呼叫模版

int main()

這就是抽象類的應用。

二.抽象類在多繼承中的應用

class figure1

;class figure2

;class parent

};class child :public parent, public figure1, public figure2

virtual int multipy(int a, int b)

virtual void print() };

int main()

三.現在用抽象類和多型的應用解決如下問題

**如下:『

class salary//封裝介面

;class primary:public salary

virtual void calculate() };

class middle :public salary

virtual void calculate() };

class super :public salary

virtual void calculate() };

void test(salary *base)//搭建多型模版

這就是虛函式和多型帶給我們的好處,如果還要繼續新增工程師的資訊,只需要定義乙個類更改引數即可。

純虛函式和抽象類

純虛函式和抽象類 語法格式 virtual 返回值型別 函式名 引數 0 1 純虛函式沒有函式體,之有 宣告 0.只表示是純虛函式,2 0 不表示返回值是0,只是乙個形式,告訴編譯器這是純虛函式 3 包含純虛函式的類稱為抽象類 4 抽象類通常稱為基類,讓派生類去實現純虛函式。派生類必須實現純虛函式才...

純虛函式和抽象類

虛函式的定義就不囉嗦了,純虛函式和虛函式類似,但是不提供實現!啥意思呢?見下面的例子 這個方法就是純虛函式,別丟了後邊那個 0,它是用來留給子類去實現的。這下大家或許會疑惑,那麼包含了這個函式的類怎麼建立物件呢?事實上這個類是建立不了例項的,因為包含了乙個及以上個純虛函式的類被稱為抽象類。抽象類是不...

純虛函式和抽象類

純虛函式是一種特殊的虛函式,前面分析過虛函式,虛函式是virtual修飾的類的成員函式,可以有實現。而純虛函式也和虛函式一樣,用virtual來修飾的類的成員函式,但是只能有函式體不能有具體實現。一般格式 class 類名 1 純虛函式是乙個在父類中只有函式體,沒有實現,實現在子類中去完成 2 純虛...