類物件的繼承002

2021-10-25 09:25:42 字數 1642 閱讀 6565

動物

貓 狗加菲貓,蘋果貓, 嘯天犬 , 狗頭

網頁的頭

網頁的尾

網頁的左側

都一樣只有網頁的內容不一樣的時候可以先寫乙個基類網頁,讓各個子類去繼承

有效減少**量

子類新增自己的內容,

使用時候直接子類建立物件,使用子類和基類的方法

語法:class 子類名:繼承方式 基類

子類能訪問基類成員的許可權 和 對繼承下來的成員的許可權變更

p128的截圖

protected 方式繼承基類,的子類中類中可以訪問protected的屬性,但是子類構造出來的物件,就屬於類外了,此物件就不能訪問子類中的protected屬性了,

基類中所有非靜態的成員都被子類繼承去了,不管private,都繼承下去了。

基類中的私有成員屬性,被編譯器隱藏了,訪問不到

f:跳轉盤幅

跳轉到具體路徑: cl

檢視命令:

cl /d1reportsingleclasslayout 檔名(那個.cpp檔案)

父子子父

先有父類再有子類

析構:因為在棧上所以:反向

建立子類物件,會先建立父類物件

建立的子類物件直接(點)操作的是子類的屬性,

如果要訪問父類的成員需要新增作用域運算子

son s;

s.m_age;

//直接訪問子類中的屬性

s.base::m_age;

//訪問父類中的屬性

當出現同名函式時候,也是一樣的呼叫方式,直接點出來就是子類的函式,如果想要訪問父類的方法,就加父類的作用域

如果子類**現了和父類的同名函式,會隱藏父類中的所有同名函式,

加作用域就可以解隱藏

靜態成員變數編譯階段分配記憶體,共享同乙份資料,類內宣告,類外初始化。

int base::m_age=10;

通過物件的方式訪問靜態成員,

通過類名的方式訪問靜態成員,

cout<<:base::m_age>

//通過類名(son)的方式訪問,訪問base作用域下的成員屬性

//兩個::表示的含義不一樣

class son : public base1,public base2

;如果兩個父類中有同名成員屬性,如何區分?

加作用域運算子 ::

菱形繼承:

問題:繼承了兩份年齡資料,占用記憶體資源,

解決菱形繼承的問題:使用虛繼承

class sheep:virtualpublic animal

{};class tuo:virtualpublic animal

{};class sheeptuo:public sheep

;解決菱形繼承問題:虛基類表

把動物那個類變成虛基類,羊類和駝類繼承乙個虛基類指標,通過虛基類表,指向動物類的那個成員,保證唯一性

物件導向 類的繼承

1 派生類物件的構造與析構 建立派生類物件的時候首先呼叫基類的建構函式初始化基類成員,隨後才呼叫派生類建構函式 派生類物件的析構過程首先是呼叫派生類的析構函式,再呼叫基類的析構函式 2 多重繼承 b c都繼承於a,而d繼承於b和c 多重繼承的兩義性 當d的物件呼叫a中的成員時就會產生兩義性 d b ...

類與物件的繼承

類與物件的繼承 1.繼承是什麼 類與物件的繼承可以說是方便呼叫一些類中的方法,其本質就是像兒子在接受父親的遺傳,父親能做的,兒子也能做,不過兒子卻是在不斷成長,所以有些兒子能另外做的事 不是接受父親遺傳,是後天生成的 2.繼承的基本格式 public class 子類 extends 父類 繼承所需...

Python類繼承物件

類宣告從object繼承有什麼理由嗎?我剛剛找到了執行此操作的 但找不到很好的理由。class myclass object class code follows.難學python的歷史 python最初對類的再現在許多方面都被破壞了。到發現此故障時,已經為時已晚,他們必須予以支援。為了解決此問題,...