友元函數

友元函數

友元函數的作用就是提供直8接訪問對象的私有成員的接口。友元函數是可以直接訪問類的私有成員的非成員函數。類授予它的友元特別的訪問權。通常同一個開發者會出於技術和非技術的原因,控制類的友元和成員函數(否則當你想更新你的類時,還要徵得其它部分的擁有者的同意)。
形式:
friend <返回類型> <函數名> (<參數列表>);
然後在類體外對友元函數進行定義,定義的格式和普通函數相同,但可以通過對象作爲參數直接訪問對象的私有成員。
注意:
1)必須在類的說明中說明友元函數,說明時以關鍵字friend開頭,後跟友元函數的函數原型,友元函數的說明可以出現在類的任何地方,包括在private和public部分;
2)注意友元函數不是類的成員函數,所以友元函數的實現和普通函數一樣,在實現時不用"::"指示屬於哪個類,只有成員函數才使用"::"作用域符號;
3)友元函數不能直接訪問類的成員,只能訪問對象成員,
4)友元函數可以訪問對象的私有成員,但普通函數不行;
5)調用友元函數時,在實際參數中需要指出要訪問的對象,
6)類與類之間的友元關係不能繼承。
7)一個類的成員函數也可以作爲另一個類的友元,但必須先定義這個類。

    friend <返回值類型> <其他類的名稱::類的成員函數名> <(參數列表)>

8)不可以將其他類的私有成員函數聲明爲友元函數。

9)用友元函數重載左移運算符“<<”、右移運算符"<<" 的重載。友元函數對於非“<<”、非">>"的實現,不是重載。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章