C 類與物件

2021-08-21 18:47:22 字數 1405 閱讀 5027

物件導向:物件是指類的例項,將物件作為程式的基本單元,將程式和資料封裝在其中,以提高軟體的重用性,靈活性和擴充套件性。

物件導向的三大特性:封裝、繼承、多型

類是現實世界對實體的抽象類別的對映,它是乙個模型,定義出乙個類並沒有分配實際的記憶體空間來儲存它。每個物件的大小為類中所有成員變數的大小之和,並遵循記憶體對齊規則。

定義乙個類

class

a;

讀取變數d的內容,假設cpu字長4位元組

遵循記憶體對齊規則讀取變數內容時,能減少記憶體讀取次數,以此來提高效率

記憶體對齊規則:

1.第乙個成員在與結構體變數偏移量為0的位址處。

2.其他成員變數要對齊到min(編譯器預設的對齊數,該成員大小)的整數倍的位址處。

3.結構體總大小為最大對其數的整數倍。

4.如果巢狀了結構體,巢狀的結構體對齊到自己的最大對其數的整數倍處,結構體的整體大小就是所有最大對齊數的整數倍。

空類的大小:1位元組,用來佔位,表示自己存在過~

類的預設成員函式:

建構函式

建構函式在定義物件時自動執行一次,用來對成員變數初始化。

特徵:

1.函式名與類名相同。

2.無返回值。

3.物件構造時系統自動呼叫對應的建構函式。

4.建構函式可以過載。

5.建構函式可以在類中定義,也可以在類外定義。

6.如果類定義中沒有給出建構函式,則編譯器自動產生乙個無參的建構函式,但只要定義了乙個建構函式,系統就不會預設生成預設的建構函式。

拷貝建構函式

拷貝建構函式在建立物件時使用同類物件來進行初始化,拷貝建構函式是特殊的建構函式。

特徵:

1.拷貝建構函式是建構函式的乙個過載。

2.拷貝建構函式的引數必須使用引用傳參,使用傳值的方式會引發無窮遞迴呼叫。

3.若未顯示定義,系統會預設生成預設的拷貝建構函式。

析構函式

析構函式用來在物件生命週期結束時,完成清理工作。

特徵:

1.析構函式在類名前加~。

2.析構函式無引數無返回值。

3.乙個類有且只有乙個析構函式,若未預設定義,會自動生成。

4.物件宣告週期結束時,編譯器自動呼叫析構函式。

5.析構函式體內不是刪除物件,而是做一些清理工作。

賦值運算子過載

賦值運算子過載是對乙個已存在的物件進行拷貝賦值。

C 類與物件

程式設計模型 所有計算機均由兩種元素組成 和資料.精確的說,有些程式是圍繞著 什麼正在發生 而編寫,有些則是圍繞 誰正在受影響 而編寫的.抽象封裝 封裝是一種把 和 所操作的資料 在一起,使這兩者不受外界干擾和誤用的機制.繼承 繼承是指乙個物件從另乙個物件中獲得屬性的過程.是物件導向程式設計的三大原...

C 類與物件

c 類與物件 區分物件導向與面向過程 物件導向是指一種程式設計范型,同時也是一種程式開發的方法。它將物件作為程式的基本單元,將程式和資料封裝其中,以提高軟體的重用性 靈活性和擴充套件性。物件導向 利用物件間的訊息傳遞來驅動程式的執行。優點 真實表現客觀世界,物件間的關係清晰,物件間的訊息處理高效。面...

C 類與物件

類是物件導向的核心機制,是物件導向設計中對具有相同或相似性質的物件的抽象,是對資料和操作進行封裝的載體,進而保證了對資料的安全 高效 合理的訪問 物件是類的例項,是類的具體個體,對應現實世界的實體。類的定義 class 類名 void showclock 習慣上在類的宣告中只定義函式的原型,在類外定...