C++对C的函数扩展

本文深入探讨了C++中内联函数、默认参数及函数重载的概念,包括如何定义内联函数以提高性能,如何在函数声明中设置默认参数以简化调用,并详细解释了函数重载的规则与应用。同时,文章还讨论了如何避免函数重载带来的二义性问题。


inline  内联函数

 必须inline int myfunc(int a, int b)和函数体的实现,写在一块。 c++编译器直接将函数体插入在函数调用的地方,

 内联函数省去了普通函数调用时的压栈,跳转,返回等开销。

现代的一些C++编译器能够进行编译优化,即使不写inline 关键字 定义函数,也可以进行优化。


2      默认参数

c++中可以在函数声明时,为参数提供一个默认值,当函数调用没有指定这个参数的值,编译器会自动用默认值代替。


 1.只有参数列表后面的部分的参数才可以提供默认参数值。

也就是说,不可以在一个默认参数后面跟一个非默认的参数

  2.一旦在一个函数调用中开始使用默认参数,那么这个参数后面的所有参数都必须是默认的。


3 函数占位参数


占位参数只有参数类型的声明,而没有参数名声明。  函数调用时,必须写够参数个数。

使用占位参数,一般用于程序扩展和对C代码的兼容。如果默认参数和占位参数在一起,都能调用起来。



4 函数重载

用同一个函数名定义不同的函数,即允许存在多个同名函数,但这些函数的参数表不同

 函数重载是反生在一个类中里面


        函数重载的判断标准:

  1. 参数个数不同
  2. 参数类型不同
  3. 参数顺序不同


重载函数的本质:  相互独立的不同的函数(静态链编)

     

当函数重载遇上默认参数函数,得注意是否产生二义性。




评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值