C 學習筆記

2021-09-05 11:42:03 字數 2353 閱讀 2003

今天也不知道帶著怎樣的情懷來開始寫筆記,可能是因為自己菜吧,也或許自己記性不好吧!2023年12月27日就當成乙個特殊的日子吧,也就是本人開始用部落格記筆記的第一天,之前都是看別人在部落格上面記筆記的,發現不是自己的,自己無法深刻記憶…廢話說了一大堆,開始吧!!

單繼承:派生類只有乙個直接基類的繼承方式

多繼承:派生類有多個直接基類的繼承方式

class 《派生類名》:《繼承方式》《基類名》

//派生類中新成員的定義

繼承方式分為三種:

public(公有繼承)

基類中的每個成員在派生類中保持同樣的訪問許可權

private(私有繼承)

基類中的每個成員在派生類中都是私有成員,而且不能再被派生的子類所繼承

protected(保護繼承)

基類中公有的和保護都成員在派生類中都是保護的成員,私有的成員在派生類中仍為私有的

不管是什麼繼承方式,派生類中的成員函式和友元函式都可以訪問基類中的公有成員和保護成員,但不能訪問私有成員

在公有繼承時,派生類的物件只能訪問公有成員,在保護繼承和私有整合式,派生類的物件不能訪問基類中的任何成員

class 《派生類名》:《繼承方式》《基類名》,《繼承方式》《基類名2>

//派生類中新成員的定義

可以使用《基類》::《成員名》的宣告方式在派生類中將基類中的公有成員從私有繼承的派生類中宣告為公有的,使得派生類的子類物件可以訪問成員

派生類中的建構函式/析構函式

通過繼承關係,派生類包含了它所有的基類成員,派生類物件的資料結構由積累中說明的資料成員和派生類中說明的資料成員共同構成,在建立派生類物件時,派生類物件的初始化,不僅要給派生類中的資料成員舒適化,還要給它基類中的資料成員初始化,如果派生類中還有子物件時,還應包含對子物件初始化

《派生類名》(《總參數列》):《基類建構函式名》(參數列1),(子物件名)(參數列2)

\派生類中資料成員的初始化

1.基類建構函式

2.派生類建構函式

執行派生類的析構函式時,也要呼叫基類和子物件的析構函式

1.先呼叫派生類的析構函式

2.基類的析構函式

類的成員重定義

重定義是子類需要修改或擴充套件積累的某個成員功能時需要利用的機制

重定義分別可以對基類的資料成員的重定義,或對基類成員函式的重定義

重定義的新成員既可以與基類完全相同,也可以與與基類函式名相同而引數不同

注意:1.不管子類過載的成員函式的引數與基類是否完全相同,都會構成過載

2.重定義是指在不同的作用域中定義的成員函式名相同,引數不同或相同的情況

3.重定義後的成員會覆蓋掉其父類成員

多繼承派生類的建構函式格式

《派生類名》(總參數列):《基類名》,(參數列),《基類名2>,(參數列2),《子物件名》,(參數列)

//派生類建構函式

ttc(int

a):ttb(j),tta(j),m_nnum(15)

//派生類建構函式

執行順序:限制性所有基類的建構函式,再執行派生類本身的建構函式,包含子物件在內

一般來說,派生類中的成員訪問都是唯一的,但是在多繼承的情況下,可能出現派生類對其類成員訪問的不唯一性,即二義性,下面是出現二義性的兩種情況:

1.呼叫不同類的具有同樣名字的成員時可能出現二義性

2.訪問共同基類的成員時可能出現二義性

解決辦法是用類名加以限定:《派生類物件名》.基類名::成員名;

虛基類說明格式如下:

class 《基類名》

class 《派生類名》:

virtual 《繼承方式》《基類名》

class 《派生類名》:virtual

public cclassa

引進虛基類的目的是為了解決二義性的問題,使用公共積累在其派生類物件中產生乙個基類子物件

如果乙個派生類有多個直接基類,而這些直接基類又有乙個共同的基類,則在最終的派生類中會保留該間接共同基類資料成員的多份同名成員,c++提供的虛基類的方法,使得在繼承間接共同基類時只保留乙份成員

總結:

c++支援類繼承機智,繼承是物件導向的重要概念之一,派生類的成員函式和友元函式可以訪問積累的所有公有和保護的資料成員和成員函式

派生類物件只能訪問基類的公有資料成員和成員函式,多重繼承是乙個類從多個基類派生而來的機制,派生類實際上獲取了所有基類的特性

當乙個類是兩個或多個基類的派生類時,必須在派生類名和冒號之後,列出所有基類的類名,基類之間用逗號隔開,派生類的建構函式必須啟用所有基類的建構函式,並把相應的引數傳遞給它們

派生類可以是另乙個的基類,這樣就相當於形成了乙個繼承鏈,當派生類的建構函式被啟用時,他的所有基類的建構函式也會被啟用,為解決多繼承中的二義性問題,引進了虛基類的概念,七畝地是使公共基類在其派生物件中指殘生乙個基類子物件

C 學習筆記( )

一 語法 迴圈 foreach 型別識別符號 in 表示式 code 用法 例子int temp foreach int num in temp 每次從temp取乙個元素賦給num直至取完 console.writeline n num 每行顯示乙個元素 執行結果 c 中唯讀 只寫控制 class ...

C 學習筆記

1.函式特徵 有函式頭和函式體 接受乙個引數 返回乙個值 需要乙個原型。2.c 命名規則 在名稱中只能使用字母字元 數字和下劃線 名稱的第乙個字元不能是數字 區分大寫字母和小寫字母 不能將c 關鍵字用作名稱 以兩個下劃線或下劃線和大寫字母打頭的名稱被保留給實現 編譯器及其使用的資源 使用,以乙個下劃...

c 學習筆記

屬性 屬性開頭字母大寫 屬性可以判斷輸入的非法值 屬性本身不儲存值 依靠字段 索引器 using system using system.collections.generic using system.linq using system.text namespace b try catch exc...