日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 芯聞號 > 充電吧
[導(dǎo)讀]在一個類中,將operator定義為friend function有如下考量:friend function是對外公開的,相比于class member調(diào)用更加方便;對于雙目運算符的操作更加方便,如o

在一個類中,將operator定義為friend function有如下考量:friend function是對外公開的,相比于class member調(diào)用更加方便;對于雙目運算符的操作更加方便,如operator >>

在多數(shù)情況下,將運算符重載成類的成員函數(shù)和友元函數(shù)這兩種選擇都是可以的。但這兩者有各自的一些特點:
1. 一般情況下,單目運算符最好重載為類的成員函數(shù);雙目運算符最好重載成類的友元函數(shù);
2. 以下雙目運算符不能重載為類的友元函數(shù):
??? =、()、[]、->
3. 類型轉(zhuǎn)換函數(shù)只能定義為一個類的成員函數(shù),而不能定義為類的友元函數(shù);
4. 若一個運算符的操作需要修改對象的狀態(tài),選擇重載為成員函數(shù)較好;
5. 若運算符所需的操作數(shù)(尤其是第一個操作數(shù))希望有隱式類型轉(zhuǎn)換,則只能選擇友元函數(shù);
6. 當(dāng)運算符函數(shù)是一個成員函數(shù)時,最左邊的操作數(shù)(或者只有最左邊的操作數(shù))必須是運算符的一個類對象(或者是對該對象的引用);
??? 如果左邊的操作數(shù)必須是一個不同類的對象或者一個內(nèi)部類型的對象,該運算符函數(shù)必須作為一個友元函數(shù)來實現(xiàn);
7. 當(dāng)需要重載運算符具有可交換性時,選擇重載為友元函數(shù);

另外friend的二次運算符的重載,可以限定第一個參數(shù)為const的類型,這是成員函數(shù)無法做到的。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉