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

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

C++ 中友元函數與友元類詳解

2020-01-26 14:03:11
字體:
來源:轉載
供稿:網友

C++ 中友元函數與友元類詳解

總的來說,友元分為兩類:友元函數與友元類。友元是針對類而言,它提供了一種非類的成員函數來訪問類的非公有成員的一種機制??梢园岩粋€函數指定為某類的友元,這個函數稱為這個類的友元函數。也可以將類A指定為類B的友元,則類A是類B的友元類,類A的所有成員函數均是類B的友元函數,均可以訪問類B的非公有成員。

        友元函數的注意事項:

        (1)友元函數不是類的成員函數,在函數體中訪問對象的成員,必須用“對象名.對象成員"方式來訪問, 友元函數可以訪問類中的所有成員(公有,私有,保護),而一般的函數只能訪問類的公有成員。

        (2)友元函數不受類中的訪問權限關鍵字的限制,可以將它放在類的公有,私有,保護部分,結果均一樣。

        (3)某類的友元函數的作用域并非該類作用域,如果該友元函數是另一類的成員函數,則其作用域為另一類的作用域,否則與一般函數相同。

        (4)友元函數破壞了面向對象設計的封裝特性。所以應該盡量少用。

        友元類

        如果某類B的成員函數會頻繁地訪問類A的數據成員,而類A的數據成員的private/protected限制造成了類B存取的麻煩,B只能通過A的Public的成員函數進行間接存取。這種情況下可以將類B作為類A的友元類,即類A向類B提供私有和保護成員的訪問權限,讓類B可以直接存取。

        友元類中的所有成員函數均可以看作是另一類的友元函數。

        友元類的聲明: friend chass 類名;

        下面是友元函數的例子

        友元函數可以在類中聲明,聲明時在函數前增加friend關鍵字,然后在類體外定義,也可以直接在類中聲明定義。這兩種方式均可。下面例子中采取的是類中聲明,類體外定義的方式。

class Point {   friend double Distance(const Point &p1, const Point &p2); //類體中聲明  public:   Point(int x, int y):x_(x), y_(y)   {};  private:   int x_;   int y_; };  //類體外定義友元函數 double Distance(const Point &p1, const Point &p2) {   double dx = p1.x_ - p2.x_; //直接訪問類的私有成員   double dy = p1.y_ - p2.y_;   return sqrt(dx*dx+dy*dy); }  int main() {   Point p1(3,4);   Point P2(6,8);   cout << Distance(p1,p2) << endl;    return 0; } 

        下面是友元類的例子:      

class Television //電視類 {   friend class TeleController;//友元類聲明    public:   Television(int volume, int chanel): volume_(volume), chanel_(chanel){}  private:   int volume_; //音量   int chanel_; //頻道 };  class TeleController //遙控器類 { public: //類中的每個成員函數都是電視類的友元函數,都可以訪問電視類的私有數據成員   void VolumeUp(Television &tv)   {     tv.volume_ += 1; //音量加1   }    void VolumeDown(Television &tv)   {     tv.volume_ -= 1;   }    void ChanelUp(Television &tv)   {     tv.chanel_ += 1; //頻道加1   }    void ChanelDown(Television &tv)   {     tv.chanel_ -= 1; //頻道減1   } };   int main() {   Television tv(1,1);   TeleController tc;   tc.ChanelUp(tv);   return 0; } 

        友元類需要注意以下幾點:

        (1)友元關系是單向的; 

        (2) 友元關系不能被傳遞: A是B的友元,B是C的友元,則A是C的友元,這種傳遞不成立

        (3) 友元關系不能繼承:   A是B的友元,A的派生類C也是B的友元,這是不成立的。

         感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩精品久久久久| 国产一区二区三区直播精品电影| 日韩国产精品亚洲а∨天堂免| 色爱精品视频一区| 精品亚洲一区二区三区| 国产一区二区三区18| 97av在线视频免费播放| 亚洲国产成人在线视频| 久久久免费高清电视剧观看| 91精品啪在线观看麻豆免费| 国产精品综合网站| 亚洲已满18点击进入在线看片| 欧美高清理论片| 亚洲自拍偷拍网址| 久久久精品国产一区二区| 精品偷拍各种wc美女嘘嘘| 国产欧美va欧美va香蕉在线| 国产日本欧美在线观看| 亚洲美女又黄又爽在线观看| 欧美激情中文字幕乱码免费| 亚洲白虎美女被爆操| 欧美激情区在线播放| 欧美在线中文字幕| 欧美日韩精品国产| 91成人在线视频| 国产成人小视频在线观看| 日韩精品在线电影| 日韩不卡中文字幕| 最近2019好看的中文字幕免费| 国产精品一区二区久久国产| 中文字幕亚洲一区二区三区五十路| 高清欧美性猛交xxxx| 国产精品九九久久久久久久| 欧美激情在线狂野欧美精品| 国产亚洲一级高清| 欧美精品电影在线| 亚洲国产成人久久| 精品久久久久久久久久久久久久| 亚洲欧美国产另类| 国产精品吹潮在线观看| 欧美又大又硬又粗bbbbb| 亚洲午夜久久久影院| 日韩在线高清视频| 亚洲国产欧美一区| 在线不卡国产精品| 久久久久久亚洲精品不卡| 欧美大片在线免费观看| 亚洲午夜精品久久久久久久久久久久| 国产成人精品久久二区二区91| 超在线视频97| 成人妇女免费播放久久久| 91九色综合久久| 欧美有码在线观看| 欧美视频在线看| 久久久噜噜噜久久久| 亚洲精品网站在线播放gif| 日韩av在线影视| 91在线中文字幕| 日韩免费电影在线观看| 国产色综合天天综合网| 欧美视频在线观看免费网址| 成人激情视频在线播放| 国内精品久久久久久久久| 最近2019免费中文字幕视频三| 亚洲乱码国产乱码精品精| 一区二区欧美激情| 最近2019中文字幕mv免费看| 丁香五六月婷婷久久激情| 日韩av最新在线观看| 成人精品一区二区三区电影免费| 欧美一级高清免费播放| 日韩美女免费线视频| 久久亚洲春色中文字幕| 国产精品国内视频| 日韩中文字幕视频| 97在线视频免费观看| 国产一区二区三区在线看| 欧美老少做受xxxx高潮| 国产一区二区久久精品| 韩国精品美女www爽爽爽视频| 欧美色道久久88综合亚洲精品| 成人精品aaaa网站| 欧美日韩性生活视频| 92看片淫黄大片欧美看国产片| 亚洲欧美视频在线| 中文.日本.精品| 日韩在线观看高清| 一区二区三区在线播放欧美| 久久97久久97精品免视看| 国产一区二区三区在线观看网站| 精品久久久久久久中文字幕| 成人动漫网站在线观看| 欧美日韩激情视频| 久久九九免费视频| 国产噜噜噜噜噜久久久久久久久| 日韩精品日韩在线观看| 国产精品大片wwwwww| 午夜精品一区二区三区在线视| 欧美高清在线视频观看不卡| 日韩毛片在线观看| 久久91亚洲精品中文字幕| 亚洲第一中文字幕在线观看| 精品美女久久久久久免费| 日韩激情av在线免费观看| 黑人极品videos精品欧美裸| 国产精品视频网址| 91超碰caoporn97人人| 国产亚洲日本欧美韩国| 午夜伦理精品一区| 日韩在线免费观看视频| 日韩大片免费观看视频播放| 欧美性猛交xxxx免费看| 亚洲一区二区三区乱码aⅴ蜜桃女| 97福利一区二区| 91亚洲精品在线观看| 日本成熟性欧美| 久久久久国产精品www| 91国产精品91| 欧美日韩加勒比精品一区| 国产精品视频大全| 亚洲深夜福利网站| 亚洲精品福利资源站| 亚洲第一福利网站| 亚洲天堂成人在线| 色综合久久88色综合天天看泰| 日韩有码在线播放| 九九精品在线观看| 久久视频免费在线播放| 欧美一级片久久久久久久| 激情成人在线视频| 成人免费xxxxx在线观看| 亚洲电影免费观看高清| 欧美大学生性色视频| 国产精品扒开腿做爽爽爽视频| 欧美一级大胆视频| 日韩精品在线观看一区二区| 成人免费在线网址| 欧美日韩性生活视频| 国产精品久久久久不卡| 日韩精品极品在线观看播放免费视频| 欧亚精品中文字幕| 欧美精品一区二区三区国产精品| 欧美重口另类videos人妖| 欧美乱大交做爰xxxⅹ性3| 色综合色综合久久综合频道88| 欧美激情视频在线| 色777狠狠综合秋免鲁丝| 亚洲欧美中文日韩在线| 91精品久久久久久久久久久久久久| 51精品在线观看| 国内免费精品永久在线视频| 欧美日韩精品二区| 欧美电影免费观看高清完整| 九九热精品视频在线播放| 亚洲综合在线小说| 亚洲欧美日韩爽爽影院| 亚洲毛片在线看| 亚洲毛片在线免费观看| 欧美激情一区二区三区在线视频观看| 日韩av在线免费观看一区| 中文字幕国产精品| 亚洲999一在线观看www| 久久精彩免费视频| 懂色av中文一区二区三区天美|