C++基础 ----友元(友元函数与友元类)

友元函数

概念:

(1)友元函数不是成员函数,它定义在类的外部,只需要在类中声明即可

(2)友元函数可以访问所有私有成员和保护成员,一般情况下不去使用,使用不当会破坏程序面向对象的特性

语法:

friend<函数声明>

 

友元类

概念:一个类声明另一个类是自己的友元

假如类A声明类B是自己的友元,那么类B中可以访问类A所有的私有成员和和保护成员

语法:friend 类名

注意事项:

友元不具有相互性,若类B是类A的友元,类A不一定是类B的友元

友元不能被继承

友元不具有传递性

 内联函数

目的:引入内联函数的目的是为了解决程序中函数调用的效率问题

原理:内联函数在编译器阶段是直接复制”镶嵌“到主函数中去的,就是将内联函数的代码直接放在内联函数的位置上,这与一般函数不同,主函数在调用议案函数的时候,是指令跳转到被调用函数的入口地址,执行完被调用函数后,指令再跳转回主函数上继续执行后面的代码;而由于内联函数是将函数的代码直接放在了函数的位置上,所以没有指令跳转,指令按顺序执行

语法:

(1)函数声明和定义必须再同一文件进行,声明与定义时需要添加inline修饰符----inlin<返回值><函数名>(形参列表){}

(2)内联函数内不允许使用循环语句与开关语句

(3)内联函数不能超过10行,如果超过则编译器不会替换,而还是使用调用的方式调用函数

类与内联函数:

(1)类内定义的函数都是内联函数,不管是否有inline修饰符

(2)声明在类内,定义在类外,看是否有inline修饰符

内联函数与宏定义的区别

(1)宏是由预处理器进行代码替换,而内联函数由编译器进行代码替换

(2)内联函数是真正的函数

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值