友元函數(shù)有this指針嗎 友元函數(shù)有什么作用,它主要用在哪些情況下?
友元函數(shù)有什么作用,它主要用在哪些情況下?朋友的功能是提供一個(gè)直接訪問(wèn)對(duì)象私有成員的接口。通過(guò)friends,另一個(gè)類(lèi)中的不同函數(shù)或成員函數(shù)可以訪問(wèn)該類(lèi)中的私有成員和受保護(hù)成員。用法:1)必須在類(lèi)的描
友元函數(shù)有什么作用,它主要用在哪些情況下?
朋友的功能是提供一個(gè)直接訪問(wèn)對(duì)象私有成員的接口。通過(guò)friends,另一個(gè)類(lèi)中的不同函數(shù)或成員函數(shù)可以訪問(wèn)該類(lèi)中的私有成員和受保護(hù)成員。
用法:
1)必須在類(lèi)的描述中描述friend函數(shù),該類(lèi)以關(guān)鍵字friend開(kāi)頭,后跟friend函數(shù)的函數(shù)原型。friend函數(shù)的描述可以出現(xiàn)在類(lèi)中的任何地方,包括私有部分和公共部分;
2)注意friend函數(shù)不是類(lèi)的成員函數(shù),因此friend函數(shù)的實(shí)現(xiàn)與普通函數(shù)相同,不需要實(shí)現(xiàn)它使用“:”來(lái)指示它是哪個(gè)類(lèi)屬于,并且只有成員函數(shù)可以使用“:”范圍符號(hào);
3)友元函數(shù)不能直接訪問(wèn)類(lèi)成員,只有對(duì)象成員;
4)友元函數(shù)可以訪問(wèn)對(duì)象的私有成員,但是普通函數(shù)不能;
5)調(diào)用友元函數(shù)時(shí),要訪問(wèn)的對(duì)象應(yīng)該在實(shí)際參數(shù)中指明;
6)類(lèi)之間的友元關(guān)系不能被繼承;
7)一個(gè)類(lèi)的成員函數(shù)也可以是另一個(gè)類(lèi)的友元,但必須先定義這個(gè)類(lèi)。
擴(kuò)展數(shù)據(jù):
友元函數(shù)的成員函數(shù):
假設(shè)f是要正確聲明的函數(shù),C是與其相關(guān)的類(lèi);
1。虛函數(shù)必須是成員函數(shù)。如果f必須是一個(gè)虛函數(shù),讓它成為C的成員函數(shù)。運(yùn)算符>>和運(yùn)算符>或運(yùn)算符
3。只有非成員函數(shù)才能鍵入最左邊的參數(shù)。如果f需要鍵入最左邊的參數(shù),則設(shè)f為非成員函數(shù)。如果f還需要訪問(wèn)C的非公共成員,那么讓f成為C的朋友函數(shù);
4。在其他情況下,將其聲明為成員函數(shù);
5。如果上述條件均不成立,則設(shè)f為C的成員函數(shù)。
參考源: