多型,虛函式,純虛函式

2021-07-17 03:12:15 字數 1618 閱讀 7312

多型:借助虛函式,基類指標既可以使用基類(父類)的成員函式,也可以使用派生類(子類)的成員函式,它有多種形態,或多種表現方式,這就是多型    簡單說就是同一條語句可以執行不同的操作,看起來有不同表現方式,這就是多型。

多型存在的三個條件:

注意:派生類(子類)中的虛函式必須覆蓋(不是過載)基類(父類)中的虛函式,才能通過基類指標訪問

1:建立類,定義虛函式定義:  關鍵字:virtual 型別 名字(){}  虛函式對於多型具有決定性的作用,有虛函式才能構成多型

) virtual 關鍵字僅用於函式宣告,如果函式是在類外定義,則不需要再加上virtual關鍵字。

所有派生類中具有覆蓋關係的同名函式都將自動成為虛函式。

2: 虛函式作用:讓每個類都可以覆蓋這個方法的內容,非靜態成員,具有繼承性,不是過載宣告而是覆蓋,執行不同的函式,

通過指標指向或者引用 在c++中,虛函式的唯一用處就是構成多型。

3:建立類的兩種方式:

動態建立:1:base *p=new base()

p->函式

2:  p1=new 子類名

p1->子類函式可以在多個類中使用,過載只能在乙個類中使用

和過載函式的 區別:虛函式不能被修改引數和返回型別,而且引數和返回型別一致,

②:純虛函式的定義方式:virtual void showme(引數列表)=0;

純虛函式沒有函式體,只有函式宣告,在虛函式宣告結尾加上=0,表明此函式為純虛函式。

最後的=0並不表示函式返回值為0,它只起形式上的作用,告訴編譯系統「這是純虛函式」。

預設為抽象類不允許建立物件,原因很明顯,純虛函式沒有函式體,

不是完整的函式

,無法呼叫,也無法為其分配記憶體空間。和類有本質的區別:

) 只有類中的虛函式才能被宣告為純虛成員函式,普通成員函式和頂層函式均不能宣告為純虛函式,定義了抽象函式,則這個類就會變成抽象類

共同特徵:實現多型,

如何使用:宣告為純虛函式,在派生類中實現

#ifndef  __test_h_作用:宣告函式的唯一性

#define  __test_h_  

簡單的使用虛函式和純虛函式:

//多型 虛函式,純虛函式

#includeusing namespace std;

class std1

C 多型, 虛函式, 純虛函式

多型 不同物件接收相同的訊息產生不同的動作。多型包括 編譯時多型和 執行時多型 執行時多型是 通過繼承和虛函式來體現的。編譯時多型 運算子過載上。封裝可以隱藏實現細節,使得 模組化 繼承可以擴充套件已存在的 模組 類 它們的目的都是為了 重用。多型也有 重用的功能,還有解決專案中緊耦合的問題,提高程...

虛函式 純虛函式

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

虛函式 純虛函式

虛函式的作用是允許在派生類中重新定義與基類同名的函式,並且可以通過基類指標引用來訪問基類和派生類中的同名函式。include using namespace std class student student類成員函式的實現 宣告抽象基類shape class shape virtual float...