C 中的類定義

2022-08-26 09:45:08 字數 1271 閱讀 7499

類的基本思想是資料抽象和封裝,資料抽象是一種依賴介面和實現分離的程式設計技術。

類的介面包括使用者所能執行的操作;類的實現則包括類的資料成員、負責介面實現的函式體以及定義類所需的各種私有函式。

封裝實現了類的介面和實現的分離封裝後的類隱藏了它的實現細節。

定義抽象資料型別

引入this 

成員函式通過乙個名未this的額外隱式引數訪問呼叫它的那個物件,當我們呼叫乙個成員函式的時候,用請求該函式的物件位址初始化this,

呼叫total.isbn() 編譯器負責把total的位址傳給isbn的隱式形參this,可以等價的認為編譯器將該呼叫寫成了  sales_data :isbn(&total),   呼叫sales_data的isbn成員時傳入了total的位址       

【sales_data是類】

引入const成員函式

使用const的成員函式被稱作常量成員函式。

常量物件,以及常量物件的引用或指標都只能呼叫常量成員函式。

類作用域和成員函式

類本身就是乙個作用域。成員函式定義巢狀在其之內。

在類的外部定義成員函式

成員名字需包含所屬類名。

定義類相關的非成員函式

建構函式

控制物件的初始化過程的函式叫建構函式。

建構函式不能被宣告為const。

類通過乙個特殊的建構函式來控制摸摸人初始化過程,這個函式叫做預設建構函式。預設建構函式無須任何實參。

編譯器建立的建構函式又被成為合成的預設建構函式。

某些類不能遺留合成的預設建構函式

notes: 只有當類沒有宣告任何建構函式時,便要一起才回自動的生成預設建構函式。

notes2:如果類包含有內建型別或者復合型別的成員,則只有當這些成員全都被賦予了類內的初始值時,這個類才適合於使用合成的預設建構函式。

=default的含義

在c++11新標準中,若需要預設行為,可以通過在引數列表後面寫上 =default來要求編譯器生成建構函式。

如:    sales_data() = default;

建構函式初始化列表

notes: 建構函式不應該輕易覆蓋掉類內的初始值,除非新賦的值與原值不同,如果不能使用類內初始值,則所有建構函式都應該顯式地初始化每個內建型別的成員。

在類的外部定義建構函式

和在類外部定義成員函式相類似。

拷貝、賦值和析構

c 類和C 中定義類的定義

c 類和c 中定義類的定義 相同處 1.1.都需要使用 class標識 1.2.都包含有成員 函式,屬性 1.3.都有private public protect 標識的成員 2.不同之處 2.2.c 申明類及成員時格式 class member 一般在class的末尾處需要乙個英文分割符號 pub...

C 中類的定義

類是物件導向程式設計的基本單位,是一種包含資料成員 函式成員和巢狀型別的資料結構。類的資料成員有常量 域和事件。函式成員包括方法 屬性 索引指示器 運算子 建構函式和析構函式。類和結構同樣都包含了自己的成員,但它們之間最主要的區別在於 類是引用型別,而結構是值型別。類支援繼承機制,通過繼承,派生類可...

c 中類的定義

類的成員分為兩類,分別為資料成員和成員函式。資料成員的型別可以是任何已有的型別,包括整型,浮點型,字元型,陣列,指標和引用等。資料成員還可以是物件,但不能是自身類的物件,而自身類的指標或引用做資料成員是可以的。定義乙個類時,應注意 1 類只是一種自定義資料型別,類中任何成員資料均不能使用關鍵字ext...