一、純虛函式
在基類中宣告的虛函式在各派生類中根據實際需要給出各自定義。
syntax:
virtual returntype functionname(參數列)=0;
宣告為純虛函式後,基類中就可以不再給出函式的實現部分,函式體由派生類給出。
在基類中對純虛函式定義的函式體的呼叫,必須通過「基類名::函式名(引數名)」的形式,if 將析構函式宣告為純虛函式,必須給出它的實現。
純虛函式沒有函式體。
二、抽象類
帶有純虛函式的類是抽象類。
作用:
通過它為乙個類族建立乙個公共的介面,更有效發揮多型性。
抽象類派生出新類之後,if派生類給出所有純虛函式的函式實現,則派生類不再是抽象類,if沒有給出全部純虛函式的實現,則任然是乙個抽象類。
注意抽象類不能例項化,但是可以定義乙個抽象類的指標和引用,通過指標或引用,就可以指向並訪問派生類的物件,進而訪問派生類的成員。
純虛函式與抽象類
有時我們僅僅想讓基類表示一種抽象的概念,而不與具體的事物相聯絡 如 我在基類中定義乙個多邊形的函式shape 但是我並不想讓它指向某乙個具體的多邊形 三角形呀,四邊形呀 我只想讓它指明多邊形都共有的特徵 都有兩條以上的邊構成,都有角。然後在它的派生類中在對對變形進行具體化 這時便用到了純虛函式 純虛...
純虛函式與抽象類
1 純虛函式是乙個在基類中說明的虛函式,在基類中沒有定義,要求任何派生類都定義自己的版本 2 純虛函式為各派生類提供乙個公共介面 介面的封裝設計 3 純虛函式說明形式 virtual 型別 函式名 參數列 0 4 乙個具有純虛函式的基類稱為抽象類。定義乙個抽象類,含有純虛函式類叫做抽象類。1 如果子...
純虛函式與抽象類
一.純虛函式 virtual 0 形如 class 類名 的虛函式,稱為純虛函式或抽象方法 class shape 純虛函式可以不定義,但如果定義,必須寫在類的外部 void shape draw void const 在基類的構造和析構函式中呼叫純虛函式,結果將是未定義的。通常會在鏈結階段報告失敗...