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...