C 學習筆記 類的繼承(一)

2021-08-08 03:03:34 字數 1185 閱讀 3224

由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...