友元

  • 友元出现的原因

类具有封装、继承、多态、信息隐藏的特性。只有类的成员函数才可以访问类的标记为private的私有成员,非成员函数可以访问类中的公有成员,但是却无法访问私有成员,为了使非成员函数可以访问类的成员,唯一的做法就是将成员都定义为public,但如果将数据成员都定义为公有的,这又破坏了信息隐藏的特性。而且,对某些成员函数多次调用时,由于参数传递、类型检查和安全性检查都需要时间开销,从而影响程序的运行效率。友元这一概念。正好解决了该问题。

  • 使用友元的注意事项
  1. 必须在类的说明中说明友元函数,说明时以关键字friend开头,后跟友元函数的函数原型,友元函数的说明可以出现在类的任何地方,包括private和public部分
  2. 友元函数不是类的成员函数,所以友元函数的实现与普通函数一样,在实现时不用“::”指示属于哪个类,只有成员函数才使用“::”作用域符号
  3. 友元函数不能直接访问类的成员,只能访问对象成员
  4. 友元函数可以访问对象的私有成员,但是普通函数不行
  5. 调用友元函数时,在实际参数中需要指出要访问的对象
  6. 类与类之间的友元关系不能继承
  • 友元的优缺点

友元的作用在于提高程序的运行效率,但是它破坏了类的封装性和隐藏性,使得非成员函数可以访问类的私有成员。

  • 成员函数和普通函数的区别

成员函数可以是虚的,而非成员函数不行。所以,如果有一个函数必须进行动态绑定,就要采用虚函数,而虚函数必定是某个类的成员函数。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值