靜態成員與友元函式

2021-07-09 14:11:52 字數 763 閱讀 2407

1、靜態成員

由來:使用全域性物件實現資料共享,由於其處處可見,不夠安全,故可使用靜態成員實現類的多個物件之間的資料共享。

包括:靜態資料成員、靜態成員函式

特點:靜態資料成員屬於類,而不屬於某個物件獨有,類的所有物件共享靜態資料成員

靜態資料成員使用關鍵字static,在類體中宣告,在類體外定義,以分配儲存空間並初始化;

靜態資料成員應用:

a.用來儲存流動變化的物件個數;

b.作為乙個標誌,指示乙個特定的動作是否發生;

c.指向鍊錶第乙個成員或最後乙個成員的指標

靜態成員函式訪問:

a.《類名》 : : 《靜態成員函式名》(《參數列》)

classa : : fun(2,3);

b.《物件名》.《靜態成員函式名》(《參數列》)

obja.fun(2,3);

2、友元

類具有封裝性,類中的資料成員只有通過該類的成員函式才可以訪問。若在程式中需要訪問類的私有成員,必須通過類的物件呼叫類的成員函式,頻繁呼叫類的成員函式將影響程式執行效率;

為解決上述問題,c++提供友元機制,友元無需通過呼叫成員函式即可訪問類的私有資料,提高程式執行效率。  

友元函式:類中函式的宣告前加上「friend」,即宣告該函式為所在類的友元函式;

友元類   :類中類的宣告前加上「friend」,即宣告該類為所在類的友元類,友元類中的所有函式都是所在類的友元函式;

注:友元函式和友元類在提高程式執行效率、方便程式設計的同時破壞了類的封裝性,使用時應權衡利弊;

靜態成員與友元

靜態成員與友元 1 實驗目的 學習友元函式的定義和原理。學習靜態資料成員和靜態成員函式的使用。學習靜態成員代替全域性變數實現物件間的共享。2 實驗內容 1 有如下類的定義。類成員函式copy用於實現兩個物件的相互拷貝,請完成該函式的實現。有兩種方法即用成員函式和友元函式實現 include incl...

靜態資料成員 靜態成員函式 友元

建立靜態成員和友元的目的 建立靜態成員主要是解決資料共享問題,而建立友元的目的是為了讓某些函式訪問類中的私有成員。1 靜態資料成員 思考 為什麼要定義靜態資料成員?答 如果不定義為靜態資料成員,那麼每個物件都分別有乙個i的副本 拷貝 但定義為靜態資料成員之後,所有的物件共享有乙個i的副本,就是說i在...

C 友元與靜態成員

c 中,類外的成員不能訪問類內的私有和保護型別成員。而友元函式可以不受訪問限制訪問類的任何成員。友元函式雖然可以在類內進行宣告,但是友元函式不是成員函式,因此沒有this指標。舉例說明 class clock clock clock int h,int m,int s void show clock...