C++语法之友元关系

类的友元

在C++学习中,经常会碰到对象之间有关系,但是使用类内函数的又不能很好的体现很好的类间的关系,普通函数又不能直接调用类内数数据,所以就有了友元关系。

友元函数

就用一个例子,来说明,这里我定义了一个Point类:


我的主要目的是为了求两点间的距离,所以主要用到的就是juli()函数,但是这样用的话就不能很好的体现这个距离,毕竟不是某个对象独有的,而是整个类的对象相互间存在的,于是就用到了友元函数。于是我就声明了一个与point类有关的友元函数,如图:

但是为什么会报错呢?于是就发现friend只能在类内申明。在类外不允许使用!然后改成这样就行了:

运行结果如图,就是这样的:

友元类

既然如此的话,那么能不能定义类间的友元关系呢,答案是可以的。还是刚刚的那个,我又定义了一个line类,用于直接调用point类的对象,这里就要说到友元类的定义方式了。


这里声明了B为A的友元类,也就意味着B中的所有成员函数都是A的友元函数,都可以访问A的私有和保护成员。
如图:

这时运行如下程序:

这是我遇到了一个问题:

没找到原因,先结束这个话题,我找到原因后下期补上。

posted @ 2019-09-29 16:03  Xivie  阅读(357)  评论(0编辑  收藏  举报