C 類與物件

2021-09-27 03:20:12 字數 2259 閱讀 2626

一、類

1、類與物件的初步認識:

c語言是面向過程的,關注的是過程,分析出求解問題的步驟,通過函式呼叫逐步解決問題。

c++是基於物件導向的,關注的是物件,將一件事情拆分成不同的物件,靠物件之間的互動完成。

2、類的引入:

在c++中,結構體內不僅可以定義變數,也可以定義函式。 在c++中更喜歡用class來代替 。

3、類的定義

class studentname

;//一定要注意分號。

class為定義類的關鍵字classname類的名字{}中為類的主體,注意類定義結束時後面分號。 類中的元素稱為類的成員:類中的資料稱為類的屬性或者成員變數; 類中的函式稱為類的方法或者成員函式

類的兩種定義方式:

(1.)宣告和定義全部放在類體中,需要注意:成員函式如果在類中定義,編譯器可能會將其當成內聯函式處理。

(2.)宣告放在.**件中,類的定義放在.cpp檔案中(一般情況下,更期望採用第二種方式。 )

4、類的訪問限定符

c++實現封裝的方式:用類將物件的屬性與方法結合在一塊,讓物件更加完善,通過訪問許可權選擇性的將其 介面提供給外部的使用者使用

【訪問限定符說明】

public修飾的成員在類外可以直接被訪問

protected和private修飾的成員在類外不能直接被訪問(此處protected和private是類似的)

訪問許可權作用域從該訪問限定符出現的位置開始直到下乙個訪問限定符出現時為止

class的預設訪問許可權為private,struct為public(因為struct要相容)。

**注意:**訪問限定符只在編譯時有用,當資料對映到記憶體後,沒有任何訪問限定符上的區別

5、類的封裝

物件導向的三大特性:封裝、繼承、多型。 在類和物件階段我們只研究封裝

封裝:將資料和運算元據的方法進行有機結合,隱藏物件的屬性和實現細節,僅對外公開介面來和物件進行 互動。

6、類的作用域

類定義了乙個新的作用域,類的所有成員都在類的作用域中。在類體外定義成員,需要使用 :: 作用域解析符 指明成員屬於哪個類域。

class person

; 這裡需要指定test是屬於person這個類域

void person::test()

{cout<7、類的物件的模型

類的計算:乙個類的大小,實際就是該類中」成員變數」之和,當然也要進行記憶體對齊,

注意:空模擬較特殊,空類,沒有任何成員變數和成員函式,沒有儲存任何資料。但是空類仍可以例項化物件,編譯器就需給它分配記憶體空間,來指示類例項的位址。這裡編譯器預設分配了乙個位元組(如:char),以便標記可能初始化的類例項,同時使空類占用的空間也最少(即1位元組)。用來區分多個空類。

8、this指標

概念:c++編譯器給每個「成員函式「增加了乙個隱藏的指標引數,讓該指標指向當前物件(函式執行時呼叫該函式的物件),在函式體中所有成員變數的操作,都是通過該指標去訪問。只不過所有的操作對使用者是透明的,即使用者不需要來傳遞,編譯器自動完成。

this指標的特性:

this指標的型別:類型別 const*

只能在「成員函式」的內部使用this指標本質上其實是乙個成員函式的形參,是物件呼叫成員函式時,將物件位址作為實參傳遞給this 形參。所以物件中不儲存this指標

this指標是成員函式第乙個隱含的指標形參,一般情況由編譯器通過ecx暫存器自動傳遞,不需要使用者傳遞。

C 類與物件

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

C 類與物件

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

C 類與物件

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