#6.5.1#--类的友元(例5-6).pdf

上传人:奉*** 文档编号:67735983 上传时间:2022-12-26 格式:PDF 页数:2 大小:44.49KB
返回 下载 相关 举报
#6.5.1#--类的友元(例5-6).pdf_第1页
第1页 / 共2页
#6.5.1#--类的友元(例5-6).pdf_第2页
第2页 / 共2页
亲,该文档总共2页,全部预览完了,如果喜欢就下载吧!
资源描述

《#6.5.1#--类的友元(例5-6).pdf》由会员分享,可在线阅读,更多相关《#6.5.1#--类的友元(例5-6).pdf(2页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、类的友元友元是C+提供的一种破坏数据封装和数据隐藏的机制。通过将一个模块声明为另一个模块的友元,一个模块能够引用到另一个模块中本是被隐藏的信息。可以使用友元函数和友元类。为了确保数据的完整性,及数据封装与隐藏的原则,建议尽量不使用或少使用友元。友元函数友元函数友元函数是在类声明中由关键字friend修饰说明的非成员函数,在它的函数体中能够通过对象名访问 private 和 protected成员作用:增加灵活性,使程序员可以在封装和快速性方面做合理选择。访问对象中的成员必须通过对象名。例例5-6 使用友元函数计算两点间的距离使用友元函数计算两点间的距离#include#include usin

2、g namespace std;class Point /Point类声明public:/外部接口Point(int x=0,int y=0):x(x),y(y)int getX()return x;int getY()return y;friend float dist(Point&a,Point&b);private:/私有数据成员int x,y;float dist(Point&a,Point&b)double x=a.x-b.x;double y=a.y-b.y;return static_cast(sqrt(x*x+y*y);int main()Point p1(1,1),p2(4,

3、5);cout The distance is:;cout dist(p1,p2)endl;return 0;友元类友元类若一个类为另一个类的友元,则此类的所有成员都能访问对方类的私有成员。声明语法:将友元类名在另一个类中使用friend修饰说明。1class A friend class B;public:void display()cout x endl;private:int x;class B public:void set(int i);void display();private:A a;void B:set(int i)a.x=i;void B:display()a.display();类的友元关系是单向的类的友元关系是单向的如果声明B类是A类的友元,B类的成员函数就可以访问A类的私有和保护数据,但A类的成员函数却不能访问B类的私有、保护数据。2

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁