# C++ 封装之友元、内联函数、

C++ 封装之友元、内联函数、

一、友元

1.概念:友元函数不是成员函数,它定义在类的外部,只需要在类中声明即可;友元函数可以访问所有私有成员和保护成员,一般情况下不去使用,使用不当会破坏程序面向对象的特性;

2.语法:friend <函数声明>

3.友元类

(1)定义:一个类声明另一个类是自己的友元;假如类A声明类B是自己的友元,那么在类B中可以访问类A所有的私有成员和保护成员;
(2)语法:friend <类名>
(3)注意事项:
1)友元不具有相互性,若类B是类A的友元,类A不一定是类B的友元;
2)友元不能被继承;友元不具有传递性;

二、内联函数

1.目的:解决程序中函数调用的效率问题。

2.原理:在编译器阶段,把函数复制镶嵌到主函数中,与调用一般函数不同,主函数在调用一般函数时,是指令跳转到被调用函数的入口地址,执行完被调用函数后,指令再跳转回主函数上继续执行后面的代码。

3.使用规则:

(1)函数声明和定义必须在同一文件进行,声明与定义时需要添加inline修饰符;
inline int func(<形参列表>)
{
<函数体>
}
(2)内联函数内不允许使用循环语句与开关语句;
(3)内联函数不能超过10行,如果超过则编译器不会替换,而还是使用调用的方式调用函数;

4.类与内联函数;

(1)类内定义的函数都是内联函数,不管是否加了关键字inline;
(2)声明在类内,定义在类外,看是否有关键字inline;

5.与宏定义的区别;

(1)宏是由预处理器进行代码替换,而内联函数由编译器进行代码替换;
(2)内联函数是真正的函数;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jun8086

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值