純虛函式: 在
基類中宣告
的虛函式,但在基類中
沒有定義
,但要求派生類都要定義自己的實現方法
。在基類中實現虛函式的方法是在函式原型後加「=0」。
純虛函式引入的原因是:
基類本身生成物件是不合情理的
。純虛函式最顯著的特徵:它們必須在繼承類中重新宣告函式(不要後面的=0,否則該派生類也不能例項化),而且它們在抽象類中往往沒有定義。
定義純虛函式的目的在於,使派生類僅僅只是繼承函式的介面。
c++中包含純虛函式的類,被稱為是「抽象類」。抽象類不能使用new出物件,只有實現了這個純虛函式的子類才能new出物件。
c++中的純虛函式更像是「只提供宣告,沒有實現」,是對子類的約束,是「介面繼承」。
c++中的類包含純虛函式,就是「抽象類」。
虛函式和純虛函式的區別:
1,虛函式和純虛函式可以定義在同乙個類中,含有純虛函式的類被稱為抽象類,而只有虛函式的類不能被稱為抽象類。 2,
虛函式可以被直接使用,而純虛函式必須在子類中實現該函式才可以使用,因為純虛函式在基類只有宣告而沒有定義。
3,虛函式和非虛函式
都可以在子類中被過載,
以多型的形式被呼叫。 4,
虛函式和純虛函式通常在於抽象基類之中,被繼承的子類過載,目的是提供乙個統一的介面。
普通函式:靜態聯編,沒有執行時多型。在繼承關係中,子類不應該重寫父類的繼承函式。
虛函式和純虛函式的區別
首先 強調乙個概念 定義乙個函式為虛函式,不代表函式為不被實現的函式。定義他為虛函式是為了允許用基類的指標來呼叫子類的這個函式。定義乙個函式為純虛函式,才代表函式沒有被實現。定義純虛函式是為了實現乙個介面,起到乙個規範的作用,規範繼承這個類的程式設計師必須實現這個函式。1 簡介 假設我們有下面的類層...
虛函式和純虛函式的區別
a.編譯時 多型性 通過 過載函式實現 b執行時 多型性 通過虛函式實現。首先 強調乙個概念 定義乙個函式為虛函式,不代表函式為不被實現的函式。定義他為虛函式是為了允許用基類的指標來呼叫子類的這個函式。定義乙個函式為純虛函式,才代表函式沒有被實現。定義純虛函式是為了實現乙個介面,起到乙個規範的作用,...
虛函式和純虛函式的區別
首先 強調乙個概念 定義乙個函式為虛函式,不代表函式為不被實現的函式。定義他為虛函式是為了允許用基類的指標來呼叫子類的這個函式。定義乙個函式為純虛函式,才代表函式沒有被實現。定義純虛函式是為了實現乙個介面,起到乙個規範的作用,規範繼承這個類的程式設計師必須實現這個函式。1 簡介 假設我們有下面的類層...