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

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

在C++中關于友元函數的進一步理解

2020-05-23 13:24:53
字體:
來源:轉載
供稿:網友

這里重新將類的成員函數的定義看一下:

百科上的認識:

類的成員函數的原型要寫在類體中,原型說明了函數的參數表和返回值類型。而函數的定義一般在類外面,也可以直接在類內部定義。前者與普通函數不同的是,實現成員函數時要指明類的名稱,具體形式為:

  • 返回值類型 類名 :函數成員名(參數表){函數體};
  • 而后者一般為一些短小的函數(5行以內),也就是內聯函數。

這里在百科上對友元函數的解釋:

友元函數是指某些雖然不是類成員卻能夠訪問類的所有成員的函數。類授予它的友元特別的訪問權。通常同一個開發者會出于技術和非技術的原因,控制類的友元和成員函數(否則當你想更新你的類時,還要征得其它部分的擁有者的同意)。

1.為什么要使用友元函數

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

也有缺點:破壞了程序的封裝性。有時候不到萬不得已的時候才使用。

代碼解釋:

#include <iostream>#include <string>using namespace std;class ca {  string id;  void setId(string s) {    id = s;  }protected:  string name;  void setName(string s) {    name = s;  }public:  void print() {    cout << id << " " << name << " " << endl;  }  friend void fun(ca& a);  //申明全局函數作友元,允許它訪問私有保護成員};class derive : public ca { };  //ca類的派生類void fun(ca& a) {    //作友元的函數要定義在那個類的后面  a.id = "987";    //這是ca類的私有成員  a.setName("xyz");  //這是ca類的保護成員}int main ( ){  ca a;  //a.fun(...);  //友元函數不是當前類的成員函數,所以這句編譯出錯  fun(a);  a.print();  derive d;  fun(d);  //作參數時,類型轉換為ca類  d.print();  return 0;}

運行結果:

987  xyz
987  xyz

在就是友元函數的位置:可以在類外或者類內

聲明方式:friend+普通函數聲明

實現方式:像普通函數那樣直接調用

還有一點的是:其實一些操作符的重載實現也是要在類外實現的,那么通常這樣的話,聲明為類的友元是必須滴。(這就像我學的那個坐標類,直接用操作符重載,聲明友元函數)

最后一個知識點:

友元函數和類的成員函數的區別:

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

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

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對VEVB武林網的支持。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
一区二区欧美日韩视频| 精品成人乱色一区二区| 亚洲第一中文字幕在线观看| 欧美日韩亚洲一区二区| 91精品国产网站| 成人免费高清完整版在线观看| 亚洲xxxx妇黄裸体| 国产免费一区二区三区香蕉精| 91亚洲午夜在线| 久久免费国产视频| 欧美老女人xx| 黑人巨大精品欧美一区免费视频| 亚洲国产精品久久久久秋霞蜜臀| 亚洲欧美日韩久久久久久| 亚洲免费精彩视频| 色狠狠久久aa北条麻妃| 欧美一区二区三区免费视| 欧美在线视频一二三| 成人在线免费观看视视频| 欧美日韩国产一区中文午夜| 中文字幕无线精品亚洲乱码一区| 日韩欧美有码在线| 日韩在线视频一区| 国产一区二区三区视频免费| 97精品国产97久久久久久免费| 欧美激情2020午夜免费观看| 欧美电影在线观看| 久久天天躁狠狠躁老女人| 国产精品爽爽ⅴa在线观看| 26uuu亚洲国产精品| 欧美性xxxxx极品娇小| 国产香蕉一区二区三区在线视频| 国产色视频一区| 成人高清视频观看www| 欧亚精品在线观看| 91亚洲国产成人久久精品网站| 久久久久久国产三级电影| 亚洲三级av在线| 777午夜精品福利在线观看| 91九色单男在线观看| 亚洲国产精品久久精品怡红院| 日韩视频在线观看免费| 亚洲激情久久久| 91最新在线免费观看| 精品国产户外野外| 成人黄色在线观看| 这里精品视频免费| 欧美日韩aaaa| 成人h视频在线观看播放| 久久成年人免费电影| 欧美乱妇高清无乱码| 久久99亚洲热视| 国产精品网红福利| 欧美大片大片在线播放| 国产ts人妖一区二区三区| 91久久精品日日躁夜夜躁国产| 国产日韩中文字幕| 日韩精品在线观看视频| 亚洲第一色中文字幕| 成人激情免费在线| xxxx性欧美| 亚洲第一国产精品| 欧美成人精品在线视频| 国产va免费精品高清在线| 日韩在线观看网站| 国产精品成久久久久三级| 国产91精品在线播放| 黑人狂躁日本妞一区二区三区| 一本色道久久88亚洲综合88| 91久久嫩草影院一区二区| 日韩有码视频在线| 久久久免费高清电视剧观看| 亚洲精品二三区| 久久久精品久久久| 亚洲片在线资源| 欧美精品福利视频| 日本精品久久久久影院| 亚洲国内高清视频| 欧美日韩国产成人在线| 亚洲精品国精品久久99热一| 欧美日韩国产成人| 亚洲欧美国产精品va在线观看| 日韩精品极品毛片系列视频| 亚洲加勒比久久88色综合| 国产精品91免费在线| 黄网动漫久久久| 九九热这里只有精品6| 91精品久久久久久久久久久久久久| 亚洲影视中文字幕| 91精品国产综合久久香蕉的用户体验| 黑人巨大精品欧美一区二区| 久久久久北条麻妃免费看| 欧洲亚洲免费在线| 97在线观看视频国产| 欧美精品第一页在线播放| 精品成人av一区| 国内精品久久久久| 久久99视频精品| 国产精品入口尤物| 欧美黄色性视频| 亚洲一区二区久久久| 亚洲国产成人精品一区二区| 日韩av电影中文字幕| 国产日韩精品视频| 成人a免费视频| 日韩福利在线播放| 欧美激情精品久久久久久变态| 精品视频久久久| 国产精品扒开腿做爽爽爽男男| 日韩av在线免费播放| 精品久久久国产| 国产91精品不卡视频| 亚洲伊人久久大香线蕉av| 久久久久久国产精品| 国产suv精品一区二区三区88区| 欧美成人sm免费视频| 欧美成人午夜免费视在线看片| 久久影视三级福利片| 国产一区二区黑人欧美xxxx| 亚洲激情在线观看视频免费| 国产成人精品最新| 欧美亚洲视频一区二区| 久久97久久97精品免视看| 日韩精品高清在线观看| 国产精品麻豆va在线播放| 中文字幕日本欧美| 国产精品18久久久久久首页狼| 国产欧美日韩中文| 在线看欧美日韩| 国产在线一区二区三区| 亚洲国产精品99| 日韩欧美国产视频| 91在线免费视频| 久久久影视精品| 国产aⅴ夜夜欢一区二区三区| 欧美三级欧美成人高清www| 久久久亚洲国产天美传媒修理工| 成人福利视频在线观看| 欧美亚洲一区在线| 久久精品视频亚洲| 日韩av电影手机在线观看| 欧美性猛交xxxx偷拍洗澡| 国产亚洲aⅴaaaaaa毛片| 欧美一区二区三区艳史| 国产美女精品视频| 超在线视频97| 欧美电影在线观看| 91成人在线观看国产| 国产盗摄xxxx视频xxx69| 精品国产乱码久久久久久婷婷| 性亚洲最疯狂xxxx高清| 国内外成人免费激情在线视频网站| 中国人与牲禽动交精品| 国产一区二区三区毛片| 欧美黑人性视频| 精品国产福利视频| 国产精品极品尤物在线观看| 51精品国产黑色丝袜高跟鞋| 亚洲丝袜在线视频| 国产欧美日韩免费| 欧美与欧洲交xxxx免费观看| 国产欧美精品日韩| 91免费精品视频| 亚洲成人av在线|