亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C++ > 正文

關于C++中的友元函數的一些總結

2020-01-26 15:49:38
字體:
來源:轉載
供稿:網友

1.友元函數的簡單介紹

1.1為什么要使用友元函數

在實現類之間數據共享時,減少系統開銷,提高效率。如果類A中的函數要訪問類B中的成員(例如:智能指針類的實現),那么類A中該函數要是類B的友元函數。具體來說:為了使其他類的成員函數直接訪問該類的私有變量。即:允許外面的類或函數去訪問類的私有變量和保護變量,從而使兩個類共享同一函數。

實際上具體大概有下面兩種情況需要使用友元函數:(1)運算符重載的某些場合需要使用友元。(2)兩個類要共享數據的時候。

1.2使用友元函數的優缺點

1.2.1優點:能夠提高效率,表達簡單、清晰。

1.2.2缺點:友元函數破環了封裝機制,盡量不使用成員函數,除非不得已的情況下才使用友元函數。

2.友元函數的使用

2.1友元函數的參數:

因為友元函數沒有this指針,則參數要有三種情況:

2.1.1 要訪問非static成員時,需要對象做參數;

2.1.2 要訪問static成員或全局變量時,則不需要對象做參數;

2.1.3 如果做參數的對象是全局對象,則不需要對象做參數;

2.2友元函數的位置

因為友元函數是類外的函數,所以它的聲明可以放在類的私有段或公有段且沒有區別。

2.3友元函數的調用

可以直接調用友元函數,不需要通過對象或指針

2.4友元函數的分類:

根據這個函數的來源不同,可以分為三種方法:

2.4.1普通函數友元函數

2.4.1.1 目的:使普通函數能夠訪問類的友元

2.4.1.2 語法:

聲明: friend + 普通函數聲明

實現位置:可以在類外或類中

實現代碼:與普通函數相同

調用:類似普通函數,直接調用

2.4.1.3代碼:

復制代碼 代碼如下:

class INTEGER

 {

  friend void Print(const INTEGER& obj);//聲明友元函數

 };

void Print(const INTEGER& obj)

{

   //函數體

}

void main()

{

  INTEGER obj;

  Print(obj);//直接調用

}


2.4.2類Y的所有成員函數都為類X友元函數―友元類

2.4.2.1目的:使用單個聲明使Y類的所有函數成為類X的友元,它提供一種類之間合作的一種方式,使類Y的對象可以具有類X和類Y的功能。

2.4.2.2語法:

聲明位置:公有私有均可,常寫為私有(把類看成一個變量)

聲明: friend + 類名(不是對象哦)

2.4.2.3代碼:

復制代碼 代碼如下:

class girl;

class boy

{

public:

  void disp(girl &);

};

void boy::disp(girl &x) //函數disp()為類boy的成員函數,也是類girl的友元函數

{

  cout<<"girl's name is:"<<x.name<<",age:"<<x.age<<endl;//借助友元,在boy的成員函數disp中,借助girl的對象,直接訪問girl的私有變量

}

class girl

{

private:

  char *name;

  int age;

  friend boy; //聲明類boy是類girl的友元

};


main函數就不寫了和普通調用時一樣的。

2.4.3類Y的一個成員函數為類X的友元函數

2.4.3.1目的:使類Y的一個成員函數成為類X的友元,具體而言:在類Y的這個成員函數中,借助參數X,可以直接以X的私有變量

2.4.3.2語法:

聲明位置:聲明在公有中 (本身為函數)

聲明:friend + 成員函數的聲明

調用:先定義Y的對象y---使用y調用自己的成員函數---自己的成員函數中使用了友元機制

2.4.3.3代碼:

實現代碼和2.4.2.3中的實現及其相似只是設置友元的時候變為friend void boy::disp(girl &);自己解決嘍……

小結:其實一些操作符的重載實現也是要在類外實現的,那么通常這樣的話,聲明為類的友元是必須滴。

4.友元函數和類的成員函數的區別

4.1 成員函數有this指針,而友元函數沒有this指針。

4.2 友元函數是不能被繼承的,就像父親的朋友未必是兒子的朋友。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91精品久久久久久久久中文字幕| 精品国产乱码久久久久酒店| 久久精彩免费视频| 久久亚洲春色中文字幕| 精品久久久香蕉免费精品视频| 国产精品国产自产拍高清av水多| 美女精品久久久| 国产视频精品xxxx| 欧美视频在线免费看| 成人夜晚看av| 欧美人交a欧美精品| 91麻豆桃色免费看| 亚州精品天堂中文字幕| 中文字幕九色91在线| 日韩精品在线观看视频| 日韩免费观看在线观看| 亚洲美女自拍视频| 欧美日韩成人在线视频| 亚洲天堂视频在线观看| 色悠久久久久综合先锋影音下载| 日韩av片永久免费网站| 国产精品电影网| 91免费看片在线| 热99久久精品| 97视频在线观看免费高清完整版在线观看| 国产999视频| 国产精品女主播视频| 丁香五六月婷婷久久激情| 亚洲在线观看视频网站| 91精品免费久久久久久久久| 亚洲iv一区二区三区| 久久九九全国免费精品观看| 中文字幕一区二区精品| 亚洲福利视频网| 日本91av在线播放| 亚洲精品一区二区网址| 久久色精品视频| 一区二区在线免费视频| 成人免费视频网| 亚洲2020天天堂在线观看| 国产一区二区三区久久精品| 国产免费亚洲高清| 成人做爽爽免费视频| 日本精品久久久久久久| 国产成人精彩在线视频九色| 中文字幕亚洲字幕| 韩日欧美一区二区| 亚洲3p在线观看| 91国内产香蕉| 国产精品久久久久一区二区| 午夜精品久久久久久99热| 57pao国产成人免费| 国产精品美女久久久久久免费| 国产日本欧美视频| 国产日韩中文字幕| 精品免费在线视频| 中文字幕少妇一区二区三区| 国产精品久久久久久久久久ktv| 日韩**中文字幕毛片| 国产欧美va欧美va香蕉在线| 久久精品亚洲一区| 97免费视频在线| 亚洲永久在线观看| 亚洲第一级黄色片| 91麻豆国产精品| 欧美大成色www永久网站婷| 亚洲国内精品视频| 精品亚洲国产成av人片传媒| 久久天天躁夜夜躁狠狠躁2022| 自拍偷拍亚洲欧美| 美日韩丰满少妇在线观看| 亚洲v日韩v综合v精品v| 亚洲另类欧美自拍| 九九精品在线播放| 国产精品久久久久7777婷婷| 欧美成人免费大片| 91成人免费观看网站| 午夜精品久久久久久久久久久久久| 国产精品99蜜臀久久不卡二区| 国内精品模特av私拍在线观看| 亚洲精品成人av| 8x拔播拔播x8国产精品| 久久亚洲国产精品成人av秋霞| 色999日韩欧美国产| 日韩av三级在线观看| 91禁国产网站| 欧美激情女人20p| 国产成人小视频在线观看| 国产精品无av码在线观看| 国产精品大片wwwwww| 中文字幕亚洲欧美| 国产精品成人va在线观看| 激情懂色av一区av二区av| 欧美午夜激情在线| 奇米成人av国产一区二区三区| 日韩成人在线视频观看| 亚洲精品99久久久久| 亚洲精品欧美极品| 揄拍成人国产精品视频| 成人高清视频观看www| 久久99国产精品久久久久久久久| 少妇高潮久久久久久潘金莲| 日韩三级影视基地| 欧美自拍视频在线| 国产999精品| 亚洲电影免费观看高清| 91精品国产高清久久久久久91| 亚洲va欧美va国产综合剧情| 欧美成人在线免费| 国产视频久久久久久久| 亚洲精品中文字幕有码专区| 2019中文字幕免费视频| 精品国产一区二区三区四区在线观看| 成人久久久久久久| 欧美成人精品一区二区三区| 久久亚洲精品毛片| 日韩欧美有码在线| 欧美国产日韩一区二区在线观看| 91精品视频观看| 精品少妇v888av| 亚洲美女又黄又爽在线观看| 亚洲精品女av网站| 伊人久久综合97精品| 日本成熟性欧美| 欧美日韩中文字幕综合视频| 日韩精品视频观看| 18久久久久久| 亚洲天堂网在线观看| 欧美精品激情blacked18| 欧美国产精品人人做人人爱| 91九色视频在线| 高清亚洲成在人网站天堂| 国产精彩精品视频| 欧美激情中文字幕在线| 在线观看国产精品淫| 日韩国产欧美区| 亚洲第一av网站| 欧美激情手机在线视频| 欧美亚洲成人网| 亚洲电影免费观看高清完整版在线观看| 久久久久久尹人网香蕉| 欧洲成人性视频| 日韩精品999| 色偷偷av一区二区三区乱| 97在线视频观看| 精品国产欧美一区二区三区成人| 在线视频欧美日韩| 日韩精品视频在线观看免费| 最近日韩中文字幕中文| 久久精品这里热有精品| www.亚洲一二| 精品毛片网大全| 日韩中文字幕第一页| 国产精品视频区1| 超碰精品一区二区三区乱码| 日本欧美在线视频| 国产精品美女www| 精品中文字幕在线| 在线播放国产一区中文字幕剧情欧美| 92看片淫黄大片欧美看国产片| 日本a级片电影一区二区| 国产精品久久久久久久久久ktv| 成人免费视频a| 亚洲欧美日韩综合|