浅谈C++友元

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值