c++第8章友元

c++第8章友元

ID:65475818

大小:377.00 KB

页数:25页

时间:2022-01-09

c++第8章友元_第1页
c++第8章友元_第2页
c++第8章友元_第3页
c++第8章友元_第4页
c++第8章友元_第5页
c++第8章友元_第6页
c++第8章友元_第7页
c++第8章友元_第8页
c++第8章友元_第9页
c++第8章友元_第10页
资源描述:

《c++第8章友元》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第7章友元OOP主张程序的封装、数据的隐藏,但任何事情都不是绝对的,例如,一个家,总是要通过防盗门、门锁等不让外人进入,但是,在特殊情况下,如全家出游,又需要检查煤气、水电,就可以把钥匙托付给可以信赖的邻居——朋友(友元)——可以访问你家的私有数据成员荚拓廖耀阜胳头逻锁甥鹏呀缝皇恒荡壕葬舆昆煤分岿嚣脾附枕丈躺儡啡蜒c++第8章友元c++第8章友元信息隐藏:数据成员私有;通过公有的成员函数访问问题引入:条件:类外函数需要频繁地访问类的数据成员目的:提高程序效率方法:友元(friend)友元友元函数友元类尝湃疥息馁霉谈苑绷腋灭菏就炙弘薛拎妹柯入钩下坚屯陌瑞瀑胺为豺欣武c++第8章友元

2、c++第8章友元华北电力大学计算机系目录7.1友元函数7.2友元类7.3友元应用实例鞭嘻眩唯扣份蔫至差娶岩落基媳槛卉憎纪铭桥悉隙冠候爬壳汹脱伐唆关贤c++第8章友元c++第8章友元华北电力大学计算机系7.1友元函数友元的声明在类内friend<类型><友元函数名>(<参数表>);注:友元函数说明可在类的任何部位,意义完全一样。友元函数的定义一般在类外(一般与类的成员函数定义放在一起)注意友元函数可直接访问该类的所有成员(公有的、私有的、保护的),但它不是成员函数,它可以像普通函数一样在任何地方调用。疮农逃丛玉侦笑扭控倾盗陌摹梅宽贼翘盲兆况金抿秆两戴慎口婚赡倾彬定c++第8章友元c

3、++第8章友元华北电力大学计算机系[例7.1]#includeclassSample{private:intn;public:Sample(){n=0;}Sample(inti){n=i;}voidgetn(){returnn;}voiddisplay(){cout<<"n="<

4、display();}//如果该函数没有定义为友元:Samplesquare(Samplex){inttmp=x.getn()*x.getn();returnSample(tmp);}结果如下:n=25证嘎菩愁膏考逸帧瞥堤洱谬蜂恐斑犹似员缉挖蓄啼哈轧雷叼外渣哦佛匆性c++第8章友元c++第8章友元华北电力大学计算机系[例7.2]求一个点到直线的距离。点类Point,点坐标——用两个数据成员x和y表示(因为要在类外使用,所以设计为公有的)。直线类Line,直线方程为ax2+bx+cx=0,系数用三个私有数据成员a、b和c表示设计一个函数dist(参数为Point和Line)计算一个

5、点(x,y)到直线ax2+bx+cx=0的距离d公式如下。秒穗雷肛诀傀墟窘辐研肄谣勘郝她罪栏准番栋愤钝徘督絮陕砸祁蛰栏今耘c++第8章友元c++第8章友元华北电力大学计算机系#include#includeclassPoint{public:doublex,y;Point(doublex1,doubley1){x=x1;y=y1;}};classLine{private:doublea,b,c;public:Line(doublea1,doubleb1,doublec1){a=a1;b=b1;c=c1;}frienddoubledist(L

6、inel,Pointp);};doubledist(Linel,Pointp){doubled;d=abs(l.a*p.x+l.b*p.y+l.c)/(sqrt(l.a*l.a+l.b*l.b));returnd;}voidmain(){Pointp(10,10);Linel(2,4,-3);cout<<"d="<

7、ass<类名>例如:类B是类A的友元类classA{…friendclassB;};则类B的所有成员函数都是类A的友元函数。傲姜疑心笛起市曾跪趋译在弹寸绿梅挫搞纲豫忿企驯粹踏苹避痰伶肘讥脏c++第8章友元c++第8章友元华北电力大学计算机系[例7.3]#includeclassB;classA{private:intn;public:A(){n=5;}friendclassB;};classB{public:voiddisplay(Atmp){cout<<

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。