由c++構成的抽象世界存在is a kind of 的關係
例如:在c++裡,由繼承的語法來表示is lind of的關係
class file
class videofile : public file
語法:class b : public a{}
表示類b繼承於類a,把a稱為父類(基類),把b稱為子類(派生類)
當b繼承於a時,則自動地將父類中的所有public成員繼承。
子類只需要把自己的獨有的那部分特性寫出來
在描述繼承關係時,新增一種訪問修飾符protected(受保護的)
當乙個類成員被修飾為protected的時候,有以下規則成立:
(1)該成員不能被外部訪問,同private
(2)給成員可以被子類繼承,同public
所以,public和protected的成員都能夠被子類繼承
在記憶體上描述父類和子類的關係:子類物件的前半部分就是父類的物件。
父類的private成員變數也會在子類的物件中,只是編譯器限制了訪問。
子類可以重寫從父類繼承而來的函式
class parent
class chlid : public parent
重寫函式的時候,可以呼叫父類的函式,然後加上自己要寫的內容
void child::test()
將父類的指標指向子類的物件如果有重寫的函式時,指標指向的是父類的函式。
例:test為重寫過的函式
parent * p = new child();
p->test();
此時p指向的是父類的test();
當乙個成員函式需要子類重寫,那麼在父類應該將其宣告為virtual。(有時將宣告為virtual的函式稱為虛函式)。
例如:class parent
;virtual本身表明該函式即將被子類重寫
例:parent * p = new child();
p->test();
如果test()在父類中被宣告為virtual,是呼叫的是子類的test();
virtual的作用:根據物件的實際型別,呼叫相應型別的函式。
注意:(1)只需要在父類中將函式宣告為virtual,子類自動地就是virtual了。
(2)即將被重寫的函式新增virtual,是一條應該遵守的編碼習慣。
(3)建構函式不能加virtual
C 中類的繼承(一) 學習筆記
一 類的繼承 1 共性與個性 表達不同型別事物之間公有的屬性和行為。個性用於刻畫每種事物特有的屬性和行為。2 共性表示為父類 基類 個性表示為子類 派生類 子類繼承自父類 基類派生出子類 二 繼承的基本語法 1 繼承表 乙個子類可以同時繼承零到多個父類,每個父類的繼承方式可以相同也可以不同。clas...
c 學習筆記 類繼承
現在有乙個記錄身份id的類 ifndef head h define head h include include using namespace std class idcard endif 實現部分 include head.h idcard idcard const string n,cons...
C 學習筆記 類的繼承(派生類)
1 引言 馬克思說 世界是聯絡的,哈哈。搞笑了。進入正題,現實中的乙個概念不是鼓勵存在的,總是與一些相關的概念存在的,他們之間總是相互聯絡的,而且他們之間會表現出一種層次的關係,共性 層次 我們就引出了派生類的概念。2 派生類 1 employee與manager struct employee s...