C 中的類和物件 二

2021-07-26 00:00:23 字數 2774 閱讀 5389

一,物件的動態建立和釋放

1.什麼是物件的動態建立和釋放

通常我們建立的物件都是由c++編譯器為我們在棧記憶體中建立的,我們無法對其進行生命週期的管理。所以我們需要動態的去建立該物件,因此我們需要在堆記憶體中建立物件和釋放物件。在c語言中為我們提供了malloc()函式和free()函式來為我們提供在堆記憶體中分配變數的方式,但是在c++中引入了new和delete關鍵字來讓我們動態的建立和釋放變數。

2.new和delete關鍵字

3.new和delete關鍵字與malloc和free的區別

4.new和delete關鍵字示例

# define _crt_secure_no_warnings

# include

using

namespace

std;

class

teacher

/*有參建構函式

*/teacher(

char * name, int

age)

/*拷貝建構函式

*/teacher(

const teacher &student)

/*析構函式

*/ ~teacher()

cout

<< "

析構函式被執行...

"<}

};int

main()

二,靜態成員變數和靜態成員函式

1.static關鍵字

static關鍵字用來宣告類中的成員為靜態屬性。當用static關鍵字修飾成員後,該類所建立的物件共享static成員。無論建立了多少個物件,該成員只有乙份例項。靜態成員是與類相關的,是類的一種行為,而不是與該類的物件相關。

2.靜態成員的概念

靜態成員是類所有的物件的共享成員,而不是某個物件的成員,它在物件中不占用儲存空間,這個成員屬於整個類,而不屬於具體的乙個物件,所以靜態成員變數無法在類的內部進行初始化,必須在類的外部進行初始化。比如定義乙個學生類,那麼學生物件總數可以宣告為static,在構造方法中,對該變數進行加1,從而統計學生物件的數量。

3.靜態成員變數總結

4.靜態成員函式總結

5.靜態成員重點歸納

6.靜態成員變數演示

# includeusing

namespace

std;

class

mystudent

void getcount()/*

普通成員函式訪問靜態成員變數

*/};

/*靜態成員變數初始化

*/int mystudent::count = 0

;int mystudent::n = 10

;int

main()

7.靜態成員函式演示

# includeusing

namespace

std;

class

test

public

:

static

void

xoxo();

static

void

test()

};/*

初始化靜態成員

*/int test::n = 10;/*

類中宣告,類外實現

*/void

test::xoxo()

intmain()

三,友元函式和友元類

1.友元函式

當我們定義類的時候,使用private關鍵字修飾成員變數(成員函式),這樣做到了訪問控制。有些時候,我們需要讓一些函式來訪問物件的私有成員(屬性或方法),c++為我們提供了友元函式這個概念,所謂的友元函式就是指這個函式是這個類的好朋友,允許讓這個函式訪問這個類建立的物件的私有屬性和私有方法。友元函式用friend函式來宣告,友元函式的宣告必須在類的內部,友元函式的實現必須要在類的外部(如果友元函式的實現也在內部,那還要用友元函式幹什麼?),友元函式的宣告位置與訪問控制符無關。

2.友元函式示例

# includeusing

namespace

std;

/*定義點類

*/class

point

};/*

友元函式的實現

*/int distance(point &p1, point &p2)

intmain()

3.友元類

4.友元類示例

# includeusing

namespace

std;

/*定義類a

*/classa};

/*定義類b

*/class

b

void

display()

};int

main()

C 類和物件(二)

類和物件 類的物件如何引用私有資料成員 1 通過公有函式為私有成員賦值 class test void printxy void void main void 2 利用指標訪問私有資料成員 class test void getxy int px,int py 提取x,y值 void printxy...

C 類和物件(二)

隱含的this指標 1 每個成員函式都有乙個指標形參,它的名字是固定的,稱為this指標,this指標是隱式的。建構函式比較特殊,沒有這個隱含this形參 2 編譯器會對成員函式進行處理,在物件呼叫成員函式時,物件位址作實參傳遞給成員函式的第乙個形參this指標。3 this指標是成員函式隱含指標形...

C 中的類和物件

c 既是物件導向也是面向過程的語言。在這裡有乙個重要的概念 類。何謂類?類是對物件的一種抽象,舉例來講 每乙個實實在在存在的人就是乙個物件,人有很多共同的特徵 乙個頭,兩條腿,能走,能跑 這具有共同特徵的人就成為乙個類。類是乙個抽象的名詞,每乙個人 即物件 是這個類的例項。物件間具有的共同特徵是物件...