您的位置:首页 > 编程语言 > C语言/C++

浅谈C++友元

2015-12-10 20:48 197 查看
友元函数或类用于访问另一个类中的非公有成员(私有和受保护),这是从外部访问类内部非公有成员的唯一方法。下面以友元函数为例进行说明。首先,该函数是属于类外部独立的函数,要想访问类内部非公有成员,就要在类的内部进行友元声明,声明方式就在函数类型之前加friend即可。并且friend不受任何访问说明符(private等)的约束,在哪里都可以声明,但习惯是在所有的访问说明符之前声明友元函数,注意:这个声明仅仅说明可以访问类内部的非公有成员,但对于自身还没有声明,需要在类外部独立的声明该函数,此时声明函数就和普通函数声明一样,不需要加friend。为了使友元对调用该类的用户可见,通常把友元的声明与类本身放置在同一个头文件中。所以,对于类的声明头文件中,在类的内部要声明一次友元,在类的外部要声明一次该函数。顺便说一句,在类内部不是声明成员函数(没有函数体),而是定义成员函数(有函数体)的函数为内联函数,他在执行时就相当于在本地展开(将之看成代码段,而不是函数),而不需要保存寄存器,断点之类的。内联函数必须要小,最多为75行代码。

友元继承:声明类为友元,注意,友元的关系不能被继承,每个类负责控制各自成员的访问权限。当一个类将另一个类声明为友元时,这种关系只对做出声明的类有效,对于该友元类的基类或派生类来说,都不具备特殊的访问能力。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: