小項(xiàng) | 備注 |
---|---|
時間 | 2020 年 3 月 28 日 |
修改時間 | 2020 年 3 月 28 日 |
城市 | 北京市房山區(qū) |
天氣 | 晴 |
心情 | 你猜 |
0. 友元前世
類的 私有成員 只能在 自己類的成員函數(shù)內(nèi)部訪問,如果想在別處訪問此類的私有成員关划,只能通過此類提供的接口(也是一些成員函數(shù)间涵,比如:Get()辟宗、Set() 等) 間接進(jìn)行。
如果在這個 “ 類的成員函數(shù)外部 ” 窗声,想訪問到這個類的 私有成員。于是,就有了 友元(friend) 的語法闷祥。
這相當(dāng)于是說:朋友是值得信任的,所以可以對他們公開一些自己的隱私傲诵。
下圖展示了友元的分類凯砍。
1. 友元全局函數(shù)
不是 某個類 的成員函數(shù),是一個類外函數(shù)拴竹,但是可以訪問類的 所有成員(成員函數(shù)悟衩、成員屬性)。
語法:
friend 返回值類型 函數(shù)名(參數(shù)表);
2. 友元成員函數(shù)
使類A的 成員函數(shù) 成為類B的友元函數(shù)(注意:在類B中聲明栓拜,且 類A的這個 成員函數(shù) 不能是私有的)座泳,這樣類A的該成員函數(shù)就可以訪問類B的 所有成員(成員函數(shù)、成員屬性)幕与。
語法:
friend 返回值類型 其他類的類名::成員函數(shù)名(參數(shù)表);
3. 友元類
類A是類B的友元類(注意:在類B中聲明)挑势,則A就可以訪問B的 所有成員(成員函數(shù)、成員屬性)啦鸣。【注意:類A潮饱、類B 無繼承關(guān)系】
語法:
friend class 類名;