C 類與物件整理

2021-10-08 03:46:10 字數 1458 閱讀 6352

類和物件:

1.struct與class唯一區別:在於預設訪問許可權不同

struct為public,class為private

2.構造與析構函式(初始化和清理)

建構函式:類名()函式可以有引數,可以發生過載

析構函式:~類名()…,不可以發生過載,析構**,將堆區開闢資料做釋放操作。

3.類名加()建立乙個匿名物件,建立即被釋放

4.c++編譯器預設新增4個函式:

(1).預設建構函式(空實現)

(2).預設析構函式(空實現)

(3).預設拷貝函式(預設值拷貝)

(4).賦值運算子operator=,對屬性進行值拷貝

建構函式與拷貝函式

1.建構函式分類及呼叫:

(1). 按引數分:有參構造與無參(預設構造)

(2).按型別分:普通構造與拷貝構造

2.拷貝建構函式格式:

(1).類名(const 類名 &類的物件名)

呼叫方式:括號法

呼叫預設建構函式時,不要加();

(2). 顯示法

(3). 隱式轉換法

3.拷貝構造函式呼叫時機:

(1).使用乙個已經建立完畢的物件來初始化乙個新物件

(2).值傳遞的方式給函式引數傳值

(3).值方式返回區域性物件

4.構造函式呼叫規則:

a:編譯器提供的預設建構函式 b:定義的有參建構函式 c:編譯器提供的預設拷貝建構函式 d:定義的拷貝建構函式

(1).如果使用者定義有引數建構函式,c++不再提供預設無參建構函式,但是提供預設拷貝函式。

有b無a,可有c

(2).如果使用者定義拷貝建構函式,c++不再提供其他建構函式(包括預設函式)。

有d無ac

5.深拷貝與淺拷貝:

淺拷貝:簡單的賦值拷貝操作,可能帶來的問題是堆區的記憶體重複釋放。

淺拷貝帶來的問題由深拷貝解決

深拷貝:在堆區重新申請空間,進行拷貝操作。

如果屬性有在堆區開闢的,一定要自己提供拷貝建構函式,防止淺拷貝帶來的問題

初始化列表:

建構函式():屬性1(賦值1),屬性2(賦值2),…

類物件作為類成員:

classa;

classb;

//先宣告後使用

2.靜態成員

靜態成員(static)

;void

y(building &build)

{cout<>dinningbedroom

3.成員函式做友元

C 類 物件資料整理

定義乙個類,本質上是定義乙個資料型別的藍圖。這實際上並沒有定義任何資料,但它定義了類的名稱意味著什麼,也就是說,它定義了類的物件包括了什麼,以及可以在這個物件上執行哪些操作。類有兩個特性 乙個是繼承,乙個是封裝。類定義是以關鍵字class開頭,後跟類的名稱。類的主體是包含在一對花括號中。類定義後必須...

C 知識整理 類與物件的概念

1 類外定義成員函式 2 內建成員函式 3 成員函式的儲存方式 c 並不是一種純粹的物件導向的語言,而是一種基於過程和物件導向的混合型語言。c 物件導向的機制就是為了解決編寫大程式時遇到的困難。物件導向的程式設計有4個主要的特點 抽象 封裝 繼承和多型性。c 的類物件體現了抽象和封裝的特徵,在此基礎...

C 類與物件

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