函数的默认值,内联函数,函数重载

函数默认值
c++在函数方面比c多了个默认值,实际是当给函数不传参数是该函数就会使用默认值对参数进行赋值,当然默认值是从右向左依次赋值
void sum(int a,int b=2,int c=3)
{}
int main()
{
sum(1);//因为a无默认值,所以要传参数
}
函数默认值的特点
自右向左,依次设计
默认值不能重复赋值(即如果函数声明和函数定义分开,函数声明设置了默认参数,函数定义不能再设置默认参数。
内联函数
C++中用 inline修饰的函数称之为内联函数
内联函数的特点:在函数调用点之间展开
好处:无函数开栈淸栈开销,速度快
inline函数只是给编译器的一个建议:如果函数执行的开销小于函数开栈的开销使用内联函数。
内联在debug版本不生效,只在release 生效
递归函数一定不会成为内联函数,编译器会将其按普通函数处理
inline函数与普通函数的区别
内联只是在函数前加inline,在之就是内部实现上,内联直接在调用点展开(和宏有些相似)而普通函数被调用时,系统首先跳跃到该函数的入口地址,执行函数体,执行完成后,再返回到函数调用的地方,函数始终只有一个拷贝。
inline函数与宏的区别
inline函数编译期间处理 有类型检查和安全检查 ,可以调试
宏在预编译期间处理,无类型检查和安全检查 , 不可调试
inline函数与static修饰的函数的区别
从作用域来看,两者都是只有本文件可见
static修饰变量和函数,而inline只修饰函数
static修饰的函数在符号表中产生的符号是local的,inline修饰的直接在调用点展开,不产生符号
函数重载
c++中不允许变量名称重复,但允许函数名重复,这为函数重载提供了条件
重载的依据
1函数名相同,形参类型不同
2除返回值不同外,其余参数类型相同
函数重载的三要素
1同名作用域
2同名
3参数不同
c++中函数符号由返回值,函数名,形参个数,形参类型共同决定
int sum(int a,int b=1,int c=2)
double sum(double a,double b,double c)
char sum(char a,char b char c)
三个函数共同构成函数重载

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值