C 類與物件(二)

2021-09-24 22:10:36 字數 1631 閱讀 5544

五. 友元

~~~~~~

c++為成員函式提供了乙個名為this的指標,這個指標成為自引用指標。每當建立乙個物件時,系統就把this指標初始化為指向該物件,即this指標的值是當前呼叫成員函式的物件的起始位址。每當呼叫乙個成員函式時,系統就自動把this指標作為乙個隱含的引數傳給該函式。不同的物件呼叫同乙個成員函式時,從c++的編譯器將根據成員函式的this指標所指向的物件來確定引用哪乙個物件的資料成員。

~~~~~~~

用某乙個或幾個資料成員為所有的物件所共有,實現乙個類的多個物件之間的資料共享。

1. 靜態資料成員

~~~~~~

在乙個類中,將乙個資料成員說明為static,這種成員被稱為靜態資料成員。與一般的資料成員不同,無論建立多少個類的物件,都只有乙個靜態資料成員的拷貝。從而實現了同乙個類的不同物件之間的資料共享。

static 資料型別 資料成員名;
初始化格式:

資料型別 類名:

:靜態資料成員名 = 初始值;

用物件訪問靜態資料成員的格式如下:

物件名.靜態資料成員名;

物件指標->靜態資料成員名;

2. 靜態成員函式

~~~~~~

靜態成員函式屬於整個類,是該類所有物件共享的成員函式,而不屬於類中的某個物件。與靜態成員函式不同,靜態成員函式的作用不是為了物件之間的溝通,而是為了處理靜態資料成員。

定義的格式如下:

static 返回型別 靜態成員函式名(參數列);
呼叫公有靜態成員函式的一般格式:

類名:

:靜態成員函式名(實參表)

;物件.靜態成員函式名(實參表)

;物件指標->靜態成員函式名(實參表)

;

1. 友元函式

~~~~~~

友元函式既可以是不屬於任何類的非成員函式,也可以是另乙個類的成員函式。友元函式不是當前類的成員函式,但它可以訪問該類所有的成員,包括私有成員,保護成員和公有成員。

~~~~~~

在類中宣告友元函式時,需在其函式名前加上關鍵字friend。此宣告可以放在保護部分和私有部分。友元函式可以定義在類內部,也可以定義在類外部。

【例】

#include

using namespace std;

class date

friend void

showdate

(date&);

};void

showdate

(date& d)

intmain()

輸出結果:

2007.11.22
注意:

2. 友元類

宣告友元類的一般形式:

friend 類名;
例如

class y

;class x

;

當乙個類被說明為另乙個類的友元類時,它所有的成員函式都成為另乙個類的友元函式,這就意味著作為友元的類中的所有成員函式都可以訪問另乙個類中的所有成員(包括私有成員)。

C 物件導向實驗二 類與物件

類的建立和使用類來建立物件。類的資料成員的宣告。成員函式的宣告和定義。private,public訪問限定符的使用。使用提供的公有的成員函式給物件成員賦值。類 包含私有的資料成員 length,wide 和公有的成員函式 過載的建構函式oneclass,求和函式add,輸出顯示函式 display ...

C 類與物件

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

C 類與物件

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