C++ 第三次作业

C++   第三次作业

教学目标

掌握基本友元函数的概念及其应用

 

教学过程

定义:友元函数是指某些虽然不是类成员却能够访问类的所有成员的函数。类授予它的友元特别的访问权。通常同一个开发者会出于技术和非技术的原因,控制类的友元和成员函数(否则当你想更新你的类时,还要征得其它部分的拥有者的同意)。

举例:求两点之间的距离

class 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 &p1,point &p2);//友元函数的声明

private :
int x,y;

}

float dist(point &p1,point&p2){

double x=p1.x-p2.x;

double y=p1.y-p2.y;

return static_cast<float>(sqrt(x*x+y*y));

}

  在point类中声明了友元函数的原型,友元函数dist的声明在类外。

通过这个例子可以直观的认识到友元函数的用法         。      

例2:
class A{

public:

        void display(){}

         int getx(){reutrn x;}

friend B;

private :
int x;

}

class B......略

 

 

注意:
1友元关系是不能传递的

2友元关系是单向的

3友元关系是不被继承的

 

总结与反思

一、必须在类的说明中说明友元函数,并且要以关键字friend开头

后跟友元函数的函数原型,友元函数的说明可以出现在类的任何地方,包括在private和public部分;

二、友元函数不能直接访问类的成员,只能访问对象成员,

三、调用友元函数时,在实际参数中需要指出要访问的对象,

四、一个类的成员函数也可以作为另一个类的友元,但必须先定义这个类。

posted on 2019-09-29 15:46  nianshaomingtu  阅读(124)  评论(0编辑  收藏  举报

导航