C++中的友元(friend),第1张

C++中的友元(friend),第2张

提出问题

我们知道类具有封装和信息隐藏的特性。只有类的成员函数可以访问类的私有成员,程序中的其他函数不能访问私有成员。非成员函数可以访问类中的公共成员,但是如果所有的数据成员都被定义为公共的,这将破坏隐藏的特性。另外需要注意的是,在某些情况下,尤其是一些成员函数被多次调用时,传递参数、类型检查和安全检查都需要时间,影响了程序的运行效率。

为了解决上述问题,提出了使用好友的方案。Friend是在类外定义的常用函数,但需要在类内解释。为了与类的成员函数相区别,在解释之前使用了关键字friend。Friend不是成员函数,但它可以访问类中的私有成员。友元的作用是提高程序的运行效率,但是破坏了类的封装性和隐蔽性,使得非成员函数可以访问类的私有成员。

朋友可以是函数,叫做朋友函数;朋友也可以是类,称为朋友元类。

朋友

友元函数的特征在于可以访问类中私有成员的非成员函数。从句法上来说,友元函数和普通函数是一样的,也就是在定义和调用上和普通函数是一样的。下面举个例子来说明friend函数的应用。

#包括

#包括

分类点

{

公共:

点(双xx,双YY){ x = xx;y = yy}

void Getxy();

朋友双倍距离(点&a,点& b);

私人:

双x,y;

};

void Point::Getxy()

{

  cout

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » C++中的友元(friend)

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情