日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

老陈学 C++ 序列之二: 友元函数

發(fā)布時(shí)間:2023/12/18 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 老陈学 C++ 序列之二: 友元函数 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
?class one{
?public:
??one(){};
??operator two ( ) const { return two(); }
??friend ostream& operator << ( ostream& os, const one& o) //成員函數(shù)還是全局函數(shù)?
??{
???return os << " i " << o.i;
??}
??int i;
?};

定義一個(gè)友元函數(shù)為內(nèi)聯(lián)函數(shù)不會(huì)改變友元函數(shù)的狀態(tài)而且它仍是一個(gè)全局函數(shù)而不是一個(gè)類的成員函數(shù)。

什么是友元(friend)?
允許另一個(gè)類或函數(shù)訪問(wèn)你的類的東西。

友元可以是函數(shù)或者是其他的類。類授予它的友元特別的訪問(wèn)權(quán)。通常同一個(gè)開發(fā)者會(huì)出于技術(shù)和非技術(shù)的原因,控制類的友元和成員函數(shù)(否則當(dāng)你想更新你的類時(shí),還要征得其它部分的擁有者的同意)。

友元函數(shù)要在一個(gè)類體內(nèi)說(shuō)明,形式為:
friend 類型名 友元函數(shù)名(形參表);
然后在類體外對(duì)友元函數(shù)進(jìn)行定義,定義的格式和普通函數(shù)相同,但可以通過(guò)對(duì)象作為參數(shù)直接訪問(wèn)對(duì)象的私有成員
友元函數(shù)說(shuō)明如下:
1)必須在類的說(shuō)明中說(shuō)明友元函數(shù),說(shuō)明時(shí)以關(guān)鍵字friend開頭,后跟友元函數(shù)的函數(shù)原型,友元函數(shù)的說(shuō)明可以出現(xiàn)在類的任何地方,包括在private和public部分;
2)注意友元函數(shù)不是類的成員函數(shù),所以友元函數(shù)的實(shí)現(xiàn)和普通函數(shù)一樣,在實(shí)現(xiàn)時(shí)不用"::"指示屬于哪個(gè)類,只有成員函數(shù)才使用"::"作用域符號(hào);
3)友元函數(shù)不能直接訪問(wèn)類的成員,只能訪問(wèn)對(duì)象成員,
4)友元函數(shù)可以訪問(wèn)對(duì)象的私有成員,但普通函數(shù)不行;
5)調(diào)用友元函數(shù)時(shí),在實(shí)際參數(shù)中需要指出要訪問(wèn)的對(duì)象,


明天預(yù)習(xí):delete一個(gè)void指針,會(huì)刪除它指向的內(nèi)存嗎?

答案當(dāng)然是,會(huì)釋放它指向的內(nèi)存,但不會(huì)調(diào)用對(duì)象的析構(gòu)函數(shù)。

轉(zhuǎn)載于:https://www.cnblogs.com/Frodo/archive/2007/08/20/862937.html

總結(jié)

以上是生活随笔為你收集整理的老陈学 C++ 序列之二: 友元函数的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。