一.純虛函式和抽象類的概念:
用**顯示:
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 純虛...