- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
6.6友元成員的存取訪問許可權的控制提供了一個嚴格的介面,使得外界無法直接去“窺視”類的內部,是面向對象程式設計中實現數據封裝和資訊隱藏的重要手段,也是面向對象程式設計的基礎。類的友元或朋友(friend)能夠完成這一使命,它以犧牲類的封裝性為代價,打開一個“缺口”,允許外界直接訪問其“隱私”。友元包括兩類:友元函數友元類6.6.1友元函數所謂友元函數,是說它不是類的一個成員函數,卻可以直接訪問類的private成員。友元函數可以是一個普通的全局函數,也可以是其他類的成員函數。doublefn(clsNameobj){…}doubleclsTwo::ffn(clsNameobj){…}classclsName{public:… frienddoublefn(clsNameobj);private: … frienddoubleclsTwo::ffn(clsNameobj);};6.6.1友元函數友元函數具有如下特點:可以在類體內任何位置聲明友元函數,只要在函數類型前加上修飾符friend即可;友元函數不是類的成員函數,但可以直接訪問該類的private成員;友元函數一般在當前類體外定義。6.6.1友元函數【例6.16】友元函數示例。#includeiostream#includecmathusingnamespacestd;classPoint{public: Point(doublei,doublej) {x=i;y=j;} voidGetxy() {cout(x,y)endl;} frienddoubleDistance(Pointa,Pointb);private: doublex,y;};6.6.1友元函數doubleDistance(Pointa,Pointb){ doubledx=a.x-b.x;doubledy=a.y-b.y;returnsqrt(dx*dx+dy*dy);}intmain(){ Pointp1(6.0,8.0),p2(12,16); cout====================endl; p1.Getxy(); p2.Getxy(); cout====================endl; doubled=Distance(p1,p2); coutDistanceisdendl; cout====================endl; return0;}6.6.2友元類如果一個類(clsOne)聲明為另一個類(clsTwo)的友元類,是指clsOne類的所有成員函數都是clsTwo類的友元函數。這樣,避免當clsOne類有多個成員函數時,分別來說明友元函數,使clsTwo類的聲明更簡潔。6.6.2友元類classclsOne{public: …private: …};classclsTwo{public: …private: … friendclassclsOne; //聲明友元類};6.6.2友元類【例6.17】友元類的聲明與使用。#includeiostream#includecmathusingnamespacestd;classRect; //Rect定義的前向聲明classPoint{public: Point(doublei,doublej){ //構造函數 x=i;y=j; } voiddisplay()const{ cout(x,y)endl; } friendclassRect;private: doublex,y;};6.6.2友元類classRect{public: Rect(doublelx,doublely,doublerx,doublery); doublegetLength()const; //返回矩形的長度 doublegetWidth()const; //返回矩形的寬度 doublegetCircum()const; //返回矩形的周長 doublegetArea()const; //返回
您可能关注的文档
- 老年病人手术的麻醉课件.ppt
- 老年病人手术的麻醉课件.ppt
- 老年病人手术麻醉相关问题课件.ppt
- 老年骨质疏松课件.ppt
- 老年期精神心理护理课件.ppt
- 老年人安全用药与护理课件.ppt
- 老年人各系统常见健康问题照护课件.ppt
- 老年人各系统常见健康问题照护课件.ppt
- 老年人合理用药课件.ppt
- 老年人合理用药课件.pptx
- 2025及未来5年福寿亭工艺画项目投资价值分析报告.docx
- 2025及未来5年石英塔钟项目投资价值分析报告.docx
- 2025及未来5年数字语音记录仪项目投资价值分析报告.docx
- 2025及未来5年CD/DVD架项目投资价值分析报告.docx
- 2025及未来5年舒乐板用钢丝网片项目投资价值分析报告.docx
- 2025及未来5年精密电子元件工模项目投资价值分析报告.docx
- 2025及未来5年玻璃钢阳雨棚项目投资价值分析报告.docx
- 2025年事业单位工勤技能-宁夏-宁夏下水道养护工三级(高级工)历年参考题典型考点含答案解析(5套卷.docx
- 2025年事业单位工勤技能-北京-北京地质勘查员三级(高级工)历年参考题典型考点含答案解析(5套卷).docx
- 2025及未来5年发音存钱罐项目投资价值分析报告.docx
最近下载
- 内河水上服务区建设运营技术要求.pdf VIP
- 《ISO 37001-2025反贿赂管理体系要求及使用指南》专业深度解读和应用培训指导材料之8:10改进(雷泽佳编制-2025A1).pdf VIP
- 少先队活动课教案设计表.docx VIP
- 学前教育论文选题题目范文借鉴.pdf VIP
- 国开作业《机电控制与可编程序控制器技术》专题报告(占20%)参考291.pdf VIP
- [青少版新概念1A知识点1).doc VIP
- 《信息通信用750V直流供电系统》.pdf VIP
- 中小学2025年《国庆节、中秋节》放假通知及温馨提示(汇编5份).docx VIP
- 《酒店收益管理》课件.ppt VIP
- 10J301 地下建筑防水构造.pdf VIP
文档评论(0)