c 隨記二(黑馬程式設計師學習筆記)(繼承篇)

2021-10-07 01:22:10 字數 1149 閱讀 1426

25、繼承語法:class 子類(派生類):public(繼承方式) 父類(基類)。繼承方式有公共繼承、保護繼承、私有繼承三種。

26、父類中所有非靜態的成員屬性都會被繼承下去,父類中私有的成員屬性是被編譯器隱藏了雖然訪問不到但是會繼承下去。可以用開發人員命令提示工具檢視物件模型,先跳轉到具體路徑下,cl /d1 reportsingleclasslayout類名 檔名。

27、構造和析構的順序,先構造父類再構造子類,析構與構造相反。

28、繼承中,同名成員問題。子類物件可以直接訪問到子類中的同名成員。子類物件加作用域可以訪問父類同名成員。當子類與父類擁有同名的成員函式,子類會隱藏父類中的同名成員函式,加作用域可以呼叫。

#includeusing namespace std;

class base

void func()

void func(int a)

int m_a;

};class son :public base

void func()

int m_a;

};//同名成員屬性

void test01()

//同名成員函式

void test02()

int main()

29、靜態同名成員訪問同28,只是除了通過物件訪問還可以通過類名來訪問。

30、繼承多個類的語法。class 子類:繼承方式 父類1,繼承方式 父類2...在實際應用中,不建議使用多繼承。當父類**現同名成員,需要加作用域以區分。

31、菱形繼承(鑽石繼承)。兩個派生類同時繼承乙個基類,又有個類d同時繼承兩個派生類。產生問題:(1)兩個派生類同時繼承基類資料,類d使用資料時會產生二義性;(2)類d繼承了兩份基類資料,其實只需要乙份。

解決方法:(1)新增不同作用域(2)使用虛繼承。在繼承前加上virtual關鍵字。class ***: virtual public ***。虛繼承並不是繼承的資料,而是繼承的乙個指標,通過指標偏移量找到唯一資料,使得資料只有乙份。

黑馬程式設計師 C 繼承

asp.net android ios開發 net培訓 期待與您交流!物件導向的語言有三大特性,封裝 繼承和多型。在c 中,繼承特性也是尤為重要,類的繼承,介面的繼承,多重繼承。繼承特性大大的加強了 的重用性,提高的了程式設計效率。類的繼承 類可以從其他類中繼承,派生類將獲取基類的所有非私有資料以及...

黑馬程式設計師 繼承

asp.net android io開發s net培訓 期待與您交流!c 的繼承與 c 等語言乙個重要的不同,就是只能從乙個類中繼承,這是開發者在權衡了從多個類c 繼承的優勢與劣勢作出的結果。不過,可以從介面繼承。另外,繼承可傳遞。建構函式和析構函式不能被繼承。c 繼承中的重寫 1 virtual ...

黑馬程式設計師 繼承

乙個類宣告的基類說明中只能有乙個單獨的類,單繼承性 雖然類只能直接繼承乙個基類,但繼承的層次沒有限制 隱藏基類的成員 1.宣告乙個新的相同型別的成員,並使用相同的名稱 不包括返回型別 2.要讓編譯器知道你在故意隱藏繼承的成員,使用 new修飾符 基類訪問 可以使用基類訪問表示式訪問隱藏的基類成員 基...