实验二友元、重载和引用.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验二友元、重载和引用.doc

PAGE  PAGE 26 实验二 友元、重载和引用 一、 实验目的和要求 1 掌握友元的说明与定义; 2 掌握友元函数、友元成员、友元类的概念及设计方法。 3 掌握函数重载的概念和使用方法; 4 掌握几种运算符重载的方法。 5 掌握引用的概念和语法; 6 掌握用引用传递函数参数的方法。 二、 基本概念 (1)友元的说明与定义 友元的定义   友元的定义形式是将friend关键字放在函数名或类名的前面。 friend 函数返回类型 函数名(参数表); friend class 类名;//定义友元类 (2)运算符重载的方法 运算符重载为类的成员函数的定义与一般的成员函数相似,对类成员的访问与一般成员函数相同,定义格式如下: type operator 运算符(参数表) {     //操作定义; } 其中,type为返回类型。operator是运算符重载关键字。 “运算符”为所要重载的运算符符号。参数表中列出了该运算符所需要的操作数。 (3)引用的概念和语法    引用是给对象起个别名,它的作用是给函数传递大型的对象或从函数中返回左值。 定义引用的格式是: type 名称 其中:type 是要引用的类型,       是引用声明符    名称 是指引用的名字。 三、 程序例题 例2.1 使用友元函数计算线段距离。 程序实现: #includeiostream.h #include math.h class Point //Point类定义 { private: int X, Y; //私有数据成员 public: //外部接口 Point(int xx = 0, int yy = 0) {X = xx, Y = yy;} int GetX( ) {return X;} int GetY( ) {return Y;} friend float fDist(Point a, Point b); //友元函数声明 }; float fDist(Point p1, Point p2) //友元函数实现 { double X = double(p1.X_p2.X); //通过对象访问私有函数成员 double Y = double(p1.Y_p2.Y); return float(sqrt(X*X+Y*Y)); } void main( ) { Point myp1(1, 1), myp2(4, 5); //定义Point类的对象 cout The distance is: ; cout fDist(myp1, myp2) endl; //计算两点间的距离 } 程序运行结果: The distance is: 5 本例中,我们采用友元函数实现计算屏幕上两点之间距离的功能。屏幕上的点用Point类描述,两点的距离用普通函数fDist来计算,这个函数需要共享Point类的私有数据成员X和Y,为了做到共享,将fDist声明为Point类的友元函数。 例题 2.2 输入10个数,输出它们中的最大值、最小值。 程序实现: #include iostream.h class Array //定义数组类 { int a[10]; public: int Set( ); friend class Lookup; //查找类是数组类的友元 }; class Lookup //定义查找类 {public: void Max(Array x); //查找最大值成员函数 void Min(Array x); //查找最小值成员函数 }; int Array::Set( ) { int i; cout 请输入十个数: endl; for(i = 0; i 10; i++) cin a[i]; return 1; }

文档评论(0)

170****0532 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8015033021000003

1亿VIP精品文档

相关文档