欢迎来到天天文库
浏览记录
ID:36849599
大小:223.50 KB
页数:4页
时间:2019-05-16
《c++友元函数实例两则》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、1.友元定义:一般来说,仅仅只有类的成员函数能访问类的私有或者保护成员,如果我们声明一个公共的函数作为这个类的友元,这个函数也可以访问类的私有成员。友元是C++里面用来破坏类的封装的一个机制。我们可以使用类的友元或者类的友元函数.2.友元函数友元函数是类的非成员函数(普通函数),在类的里面声明,必须在函数前面加上关键词“friend。”和普通函数类似,友元函数能够在类的里面或者外面被实现。友元函数必须通过类的对象名来访问类的数据成员。友元函数实例1-computingdistancebetweentwopoints源程序:#include
2、ostream.h>#includeclassPoint {public:Point(doublexx=0,doubleyy=0);doubleGetX(){returnX;}doubleGetY(){returnY;}frienddoubleDist(Point&a,Point&b);private:doubleX,Y;};Point::Point(doublexx,doubleyy){X=xx;Y=yy;}doubleDist(Point&a,Point&b){doubledx=a.X-b.X;doubledy=a.Y-b
3、.Y;returnsqrt(dx*dx+dy*dy);}voidmain(){Pointp1(3.0,5.0),p2(4.0,6.0);doubled=Dist(p1,p2);cout<<"Thedistanceis"<4、e:classA{friendclassB;public:⋯};源程序:#includeclassA{friendclassB;public:voidDisplay(){cout<>i;Bb;b.Set(i);b.5、Display();}运行结果:55友元类实例2源程序:#includeclassbirthday{private:intyear,month,day;public:friendclasspeople;birthday(intYear=0,intMonth=0,intDay=0){year=Year;month=Month;day=Day; }};classpeople{private:birthdayb;intnumber;charsex;intid; public:people(intn,charm,ints,bi6、rthdayd){number=n;sex=m;id=s;b=d;cout<<"constructerbecalled."<7、r<<"-"<
4、e:classA{friendclassB;public:⋯};源程序:#includeclassA{friendclassB;public:voidDisplay(){cout<>i;Bb;b.Set(i);b.
5、Display();}运行结果:55友元类实例2源程序:#includeclassbirthday{private:intyear,month,day;public:friendclasspeople;birthday(intYear=0,intMonth=0,intDay=0){year=Year;month=Month;day=Day; }};classpeople{private:birthdayb;intnumber;charsex;intid; public:people(intn,charm,ints,bi
6、rthdayd){number=n;sex=m;id=s;b=d;cout<<"constructerbecalled."<7、r<<"-"<
7、r<<"-"<
此文档下载收益归作者所有