C 多型等知識點

2022-03-11 05:54:19 字數 950 閱讀 8299

分清虛函式和純虛函式的區別:

(1).虛函式是函式前加關鍵字virtual,一般定義格式為:

virtual 型別 函式名 (參數列)

{函式體

}(2).純虛函式的生命格式為:

virtual 型別 函式名 (參數列)=0;

即沒有函式體。

(3).帶有純虛函式的類為抽象類:

例:class 類名

{virtual 型別 函式名(參數列)=0;

} 為抽象類。

關於抽象類:

(1).抽象類不能定義物件。

(2).抽象類只能作為基類來使用。

(3).建構函式不能是純虛函式,析構函式可以是純虛函式。

關於虛函式:

(1).只有類的成員函式才能說明為虛函式,因為虛函式僅適用於

繼承關係的類物件,所以普通不能說明為虛函式。

(2).內聯函式不能是虛函式,因為內聯函式是在編譯時決定其位置。

(3).建構函式不能是虛函式,因為構造時物件還是一片未定型的空間。

(4).析構函式可以是虛函式,而且通常宣告為虛函 數。

總結:(1).當在基類中把成員函式定義為虛函式後,在其派生類中定義的虛函式

必須與基類中的虛函式同名,引數的型別、順序、個數必須一一對應。

(2).實現這種動態的多型性,必須使用基類型別的指標變數或引用,使該

指標指向不同的派生類的物件,並通過呼叫指標所指的虛函式才能實現動態的多型性。

實現多型的基本步驟:

(1).在基類中,定義成員函式為虛函式(virtual);

(2).定義基類的公有(public)派生類。

(3).在基類的公有派生中「過載」該虛函式。

(4).定義指向基類的指標變數,它指向基類的公有派生類的物件。

注意:過載虛函式不是一般的過載函式,它要求函式名、返回型別、引數個數

引數型別和順序完全相同。

多型知識點

多型知識點總結如下 1 含有純虛函式的類稱為抽象類 2 抽象類不可以實現例項化 3 繼承抽象類的函式如果沒有實現所有的純虛函式也為抽象類 4 純虛函式的實現格式 virtual void print 0 5 繼承類在實現純虛函式時,可以略去關鍵字virtual,但一般建議必寫 便於維護 6 乙個虛函...

多型知識點

1.乙個物件擁有多種形態,稱為物件的多型性,如劉星既有學生形態,也有人類形態。2.中體現多型性 子類被當作父類使用 格式為 fu aa new zi 父類名稱 物件名 new 子類名稱 介面名稱 物件名 new 實現類名稱 3.fu bb new zi 當直接通過物件名稱呼叫方法時,看等號右邊是誰,...

C 多型知識點大總結

三 抽象類 四 多型的原理 五 單繼承和多繼承關係中的虛表函式 本篇文章 及解釋都是在vs2013下的x86程式中,涉及的指標都是4bytes。多型的概念 通俗來說,就是多種形態,具體點就是去完成某個行為,當不同的物件去完成時會產生出不同 的狀態。舉個例子 多型是在不同繼承關係的類物件,去呼叫同一函...