類和物件(1)

2021-09-25 06:18:43 字數 1544 閱讀 2576

1.類和物件的初步認知

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

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

2.類的引入

c語言中,結構體只能定義變數,在c++中,結構體內不僅可以定義變數,也可以定義函式。

3.類的定義

class classname

;//注意這裡有個分號

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

類的兩種定義方式:

3.1宣告和定義全部放在類體中。

class person

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

void person::printpersoninfo()

private:

int _a;

};// 類中僅有成員函式

class a2

};// 類中什麼都沒有---空類

class a3

{};

結論:乙個類的大小,實際就是該類中「成員變數」之和,當然也要進行記憶體對齊,注意空類的大小,空模擬較特殊,編譯器給了空類乙個位元組來唯一標識這個類。7.2結構體內存對齊規則1.第乙個成員在與結構體偏移量為0的位址處。

2.其他成員變數要對齊到某個數字(對齊處)的整數倍的位址處。

注意:對齊數=編譯器預設的乙個對齊數與該成員大小的較小值

vs中預設的對齊數為8,gcc中的對齊數為4

3.結構體總大小為:最大對齊數(所有變數型別最大者與預設對齊引數取最小)的整數倍。

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

8.this指標

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

this指標的特性:

1.this指標的型別:型別為*const

2.只能在「成員函式」內部使用

3.this指標本質上其實是乙個成員函式的形參,是物件呼叫成員函式時,將物件位址作為實參傳遞給this形參。所以物件中不儲存this指標。

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

1 類和物件

1 類和物件.h import 注意檔名稱與類名沒有什麼實質的關係,創造類時最好把檔名和類名設定成一致的,目的方便使用 oc中類的宣告標誌是 inte ce end student 當前類名 nsobject 父類名 代表繼承關係 inte ce student nsobject 所有的特徵與行為都...

類和物件1

類 物件物件的三大特性 類和物件的區別 類是靜態定義 物件是動態例項 程式 操作的是物件而非類 建模得到的是類而非物件 類和物件的 聯絡 類是物件的定義 物件的產生離不開類這個模板 類存在的目的是例項化得到物件 定義類的步驟 1.類名,2.類的資料成員代表屬性,3.編寫類的方法代表行為 類的建模是乙...

類和物件(1)

1.類與物件的初步認知 c語言是面向過程的,關注的是過程,分析出求解問題的步驟,通過函式呼叫逐步解決問題。資料和運算元據的方法是分離開的。c 是基於物件導向的,關注的是物件,將一件事情拆分成不同的物件,靠物件之間的互動完成。結構體中不僅僅可以放資料,也可以放函式。2.類的引入 c語言中,結構體中只能...