友元可以訪問私有成員函數
發布時間: 2025-06-05 22:31:25
㈠ 友元函數有什麼作用,它主要用在哪些情況下
友元函數的作用就是提供直接訪問對象的私有成員的介面。通過友元,一個不同函數或另一個類中的成員函數可以訪問類中的私有成員和保護成員。
使用情況:
1)必須在類的說明中說明友元函數,說明時以關鍵字friend開頭,後跟友元函數的函數原型,友元函數的說明可以出現在類的任何地方,包括在private和public部分;
2)注意友元函數不是類的成員函數,所以友元函數的實現和普通函數一樣,在實現時不用"::"指示屬於哪個類,只有成員函數才使用"::"作用域符號;
3)友元函數不能直接訪問類的成員,只能訪問對象成員;
4)友元函數可以訪問對象的私有成員,但普通函數不行;
5)調用友元函數時,在實際參數中需要指出要訪問的對象;
6)類與類之間的友元關系不能繼承;
7)一個類的成員函數也可以作為另一個類的友元,但必須先定義這個類。
(1)友元可以訪問私有成員函數擴展閱讀:
友元函數的成員函數:
假設f是想正確聲明的函數,c是和它相關的類;
1、虛函數必須是成員函數。如果f必須是虛函數,就讓它成為c的成員函數。
2、operator>>;和operator<<;決不能是成員函數。如果f是operator>>;或operator<<;,讓f成為非成員函數。如果f還需要訪問c的非公有成員,讓f成為c的友元函數;
3、只有非成員函數對最左邊的參數進行類型轉換。如果f需要對最左邊的參數進行類型轉換,讓f成為非成員函數。如果f還需要訪問c的非公有成員,讓f成為c的友元函數;
4、其它情況下都聲明為成員函數;
5、如果以上情況都不是,讓f成為c的成員函數。
熱點內容