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 阅读(135) 评论(0) 编辑 收藏 举报