首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

暑假c++温习12

2012-07-31 
暑假c++复习12#include#includeclassPoint{public:Point(doublexx,doubleyy){xxxyyy}voidGetxy()frie

暑假c++复习12

#include    #include     class   Point   {   public:   Point(double   xx,   double   yy)  {   x=xx;   y=yy;   }   void   Getxy();   friend   double   Distance(Point  &a,   Point   &b);   private:   double   x,   y;   };    double   Distance(Point   &a,  Point   &b)   {   double   dx   =   a.x   -  b.x;   double   dy   =   a.y   -  b.y;   return   sqrt(dx*dx+dy*dy);   }   void   main()   {   Point   p1(3.0,   4.0),   p2(6.0,  8.0);    double   d   =   Distance(p1,  p2);   cout<<"Distance   is"<<endl; }   



说明:在该程序中的Point类中说明了一个友元函数Distance(),它在说明时前边加friend关键字,标识它不是成员函数,而是友元函数。它的定义方法与普通函数定义一样,而不同于成员函数的定义,因为它不需要指出所属的类。但是,它可以引用类中的私有成员,函数体中 a.x,b.x,a.y,b.y都是类的私有成员,它们是通过对象引用的。在调用友元函数时,也是同普通函数的调用一样,不要像成员函数那样调用。本例中,p1.Getxy()和p2.Getxy()这是成员函数的调用,要用对象来表示。而Distance(p1,   p2)是友元函数的调用,它直接调用,不需要对象表示,它的参数是对象。(该程序的功能是已知两点坐标,求出两点的距离。)   

友元类  

友元除了前面讲过的函数以外,友元还可以是类,即一个类可以作另一个类的友元。当一个类作为另一个类的友元时,这就意味着这个类的所有成员函数都是另一个类的友元函数。

 














热点排行
Bad Request.