C 物件導向 友元函式

2021-10-03 20:43:46 字數 727 閱讀 4328

1.友元可以是函式(友元函式),也可以是乙個類(友元類)。

使用時在定義b時的public新增:

[全域性]friend void func();

[友元類b的]friend class a;

[a的成員函式]friend void a::func();

其中函式類又分為全域性函式和成員函式

2.全域性函式做友元時,全域性函式的定義在類外部,它的宣告有在類的定義**現過,但並不是成員函式。

3.定義友元函式需要在類定義中該函式原型前使用關鍵字friend。

4.友元函式的使用例項:(截自菜鳥教程——c++ 友元函式)

5.友元函式沒有this指標,則引數要有三種情況: 

(1)要訪問非static成員時,需要物件做引數;

(2)要訪問static成員或全域性變數時,則不需要物件做引數;

(3)如果做引數的物件是全域性物件,則不需要物件做引數.

另:可以直接調用友元函式,不需要通過物件或指標

6.成員函式做友元:

假定在a類中引入友元b類中的成員函式,則:

宣告b;

宣告/定義a;

定義b;

不可先定義b後定義a!!

友元成員函式必須在類外實現!!

C 物件導向 友元函式和友元類

2.友元函式的另一種實現 3.友元類 4.為什麼會有友元函式 class person void print person a 對於上面的person類,內部有private protected public的三類訪問許可權的成員。寫乙個外部函式print 來列印這三類成員,則print 可以訪問p...

C 物件導向程式設計 友元函式

友元函式相當於 類的封裝裡面開的乙個小孔,可以通過看到類裡面的屬性 友元函式不同於一般函式,一般成員函式訪問類要通過將其資料成員設定成public 這樣就破壞了類的封裝,破壞了隱藏性 但是有緣函式是不需要的 調用友元函式 直接呼叫,不需要進行使用.引用 但這函式體內 需要用 來進行引用 具體是先看 ...

C 物件導向 友元

友元 友元函式 友元類 三種友元 普通函式 非成員函式 類 類的成員函式 include include using namespace std class screen 列表初始化建立建構函式 double area const private std string contents 內容 ind...