類和物件(上)

2021-08-22 15:18:03 字數 2671 閱讀 6477

1.類是物件的抽象,而物件是類的具體例項。

類是抽象的,不占用記憶體;而物件是具體的,占用儲存空間。

2.面向過程與物件導向

c語言是面向過程的,關注的是過程中的資料與方法。

c++是物件導向的,關注的是物件』的屬性與功能。

1.在c++中,結構體內不僅可以定義變數,也可以定義函式。

struct student

};

2.c語言和c++中struct的區別?c語言中struct只可以定義變數,c++中的struct既可以定義變數,也可以定義函式(實現方法)。

class classname

; //一定要注意後面的分號

對上面的說明:class:定義類的關鍵字      classname:類的名字     :類的主體

類中的元素稱為類的成員,類中的資料為類的屬性或類的成員變數 ,類中的函式稱為類的方法或類的成員函式

注意:類的成員函式預設是內聯(即是內聯函式)的。

類的兩種定義方式:

1.類的宣告和定義全部放在類體中

class person

public:

char* _name;

int _age;

};

2.類的宣告放在.h檔案中,類的定義放在.cpp中

宣告放在類的標頭檔案person.h中

class person

;

實現放在類的實現檔案person.cpp中

#include"person.h"

//顯示基本資訊,實現:輸出名字、年齡

訪問限定符說明:

1.public成員在類外可以直接訪問。

2.protectd和private成員在類外(可以都理解成private)不能訪問。

3.它們的作用域從該訪問限定符出現的位置開始到下乙個訪問限定符出現為止。

4.class的體中如果沒有定義限定符,則預設訪問許可權是private.

5.struct為public型。(因為struct要相容c)

物件導向的三大特性:封裝,繼承,多型。

c++中struct和class的區別 ?

struct訪問限定符: public型別。    class訪問限定符:public,private,protected

類定義了乙個新的作用域,類的所有成員都必須處在類的作用域中。

在類體外定義成員,需要使用::作用域解析符指明成員屬於哪個類域。

在類的作用域外,只要能夠通過物件(或指標)借助成員訪問操作符.和->來訪問類成員。

成員變數在類中具有全域性作用。

含義:用類型別建立物件的過程。

1.類只是乙個模型一樣的東西, 限定了類有哪些成員,定義乙個類並沒有分配實際的記憶體空間。

2.乙個類可以例項化出多個物件。此時的物件占用實際的物理空間儲存類成員變數。

class person

public:

char* _name;

char* _***;

int _age;

};void test()

我們先來看段**:

//類中既有成員變數,又有成員函式

class a1

void f2()

{}private:

int a;

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

class a2

void f2()

{}};

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

class a3

{};

分別在編譯器下計算a1,a2,a3的大小可以得到:

sizeof(a1):4  sizeof(a2) :1 sizeof(a3) :1

結論:乙個類的大小,實際就是該「成員變數」之和,當然也要進行記憶體對齊,注意空類的大小。

(關於記憶體對齊:

空模擬較特殊,編譯器給了乙個位元組來唯一標識這個類。

類物件儲存模型:

1.每個成員函式都有乙個指標形參,它的名字是固定的,稱為this指標,this指標是隱式的。(建構函式比較特資料,沒有這個隱含的this形參)

2.編譯器會對成員函式進行處理,在物件呼叫成員函式時,物件位址作實參傳遞給成員函式的第乙個形參this指標。

3.this指標是成員函式隱含指標形參,是編譯器自己處理的。我們不能再成員函式的形參中新增this指標的引數定義,也不能在呼叫時顯示傳遞物件的位址給this指標。

類和物件(上)

類的定義格式 說明部分和實現部分 class 類名 public 公有資料成員和成員函式 protected 保護資料成員和成員函式 private 私有資料成員和成員函式 各個成員函式的實現 建構函式 a 作用 為物件分配空間 對物件初始化 即賦初始值 請求其他資源。b 特點 函式名和類名完全相同...

類和物件(上)

1.什麼是物件導向?想想之前學過的c語言,c語言是面向過程的語言,不管是簡單型別還是複雜型別,只是一味的呼叫函式,這裡的呼叫函式就是將資料處理的過程,更加在乎的是處理邏輯和處理結果 c 是面向過程的語言,首先要說一下什麼是類?什麼是物件?類,通俗的就講就是乙個事物的描述,描述著這一類事物的特徵和動作...

類和物件(上)

類是物件的抽象,而物件是類的具體例項。類是抽象的,不占用記憶體 而物件是具體的,占用記憶體空間。c語言是面向過程的,關注的是過程中的資料與方法。c 是物件導向的,關注的是物件的屬性與功能。1.類的簡單定義 class為定義類的關鍵字,date為類的名字,中為類的主體,注意類定義結束時後面分號。類中的...