1. 程式人生 > >CPP類和物件1-四個預設成員函式

CPP類和物件1-四個預設成員函式

1、(1)類的定義
類也是一種資料型別,同int,float等基本資料型別一樣,可以生成類的變數。
每個類可以沒有成員,稱為空類。

例如:首先用class宣告類的名稱。

class AA
{
};

也可以定義多個成員,成員可以是資料,函式或類型別名。
(2)訪問限定符
訪問限定符有三種:公有的(public)、保護的(protect)、和私有的(private)。
公有成員定義了類的外部介面,可以被使用者程式直接訪問。
私有成員定義了類的內部使用的資料和函式,只能被自己所屬類的成員函式訪問。
保護的成員的許可權介於公有和私有之間,在繼承中使用。
(3)面向物件封裝性
在面向物件程式設計中。通過封裝,可以將一部分屬性和操作隱藏起來,不讓使用者訪問,另一部分作為類的外部介面,使用者可以訪問。
(4)物件大小的計算
空類的大小為1,其他計算變數大小,存在記憶體對齊。
2,四個預設成員函式&運算子過載
建構函式:(1)函式名與類名相同。
(2)無返回值。
(3)物件構造時系統自動呼叫對應的建構函式。
(4)建構函式可以過載。
(5)建構函式可以在類中定義,也可以在類外定義。
(6)如果類定義中沒有給出建構函式,則編譯器自動產生一個預設的建構函式,但只要自己定義了建構函式,系統不會自動產生建構函式。
(7)無參建構函式和全預設建構函式都認為時預設的建構函式,並且預設的建構函式只能有一個。
解構函式:(1)在類明前加上~
(2)解構函式無引數無返回值。
(3)一個類有且只有一個解構函式,若未顯示定義,系統會自動生成預設的解構函式。
(4)物件生命週期結束時,編譯系統自動呼叫解構函式。
(5)解構函式不是刪除物件,而是做一些清理工作。
拷貝建構函式:(1)是一個建構函式的過載
(2)拷貝建構函式的引數必須使用引用傳參,使用傳值方式會引發無窮遞迴呼叫。
(3)若無定義,系統會預設預設的拷貝建構函式。
賦值運算子過載:是對一個已存在的物件進行拷貝賦值。
3、隱含的this指標
(1)每個成員函式都有一個指標形參。
(2)編譯器會對成員函式進行處理
(3)this指標是成員函式隱形指標形參。