狄泰C++课程学习笔记:第七课:函数的默认参数和占位参数

1、相较于C而言,C++允许我们在声明某个函数时为其形参附加上一个默认的值

如:int mul(int a = 5);

    // .......

        int mul(int a) { return a * a; }

这种声明中带有默认参数的写法在C++中是合法有效的,当我们以mul();这种方式(即没有显示的指明实参的值)来调用该函数时,即表明该参数使用默认参数。

2、强调:函数的默认参数必须在函数声明中指定

即 函数声明和函数定义均含有默认参数,且参数值不同 // Error

    函数声明没有默认参数,函数定义中有默认参数 // Error

3、question:void func(); 和 void func(void) 一样吗?

    answer:C中,两者不相同,前者代表该函数在调用时接受任意参数,后者则代表该函数在调用时不接受任何参数

                C++中,两者意义相同,意义均为该函数在调用时不接受任何参数

4、C++中函数定义时允许这样的一种参数形式

int func(int, int);     // OK,这里的参数即为占位参数

从某种程度上来说,C++之所以提出且支持占位参数这么个东西,结合上边的第3点,则是为了兼容已经存在的用C写好的不规范的代码,是为了进行代码移植时,达到最小的改动即可工作的目的。

如:有这么一段C代码

如果进行移植,直接这样将代码拷过去,在g++编译器下是无法编译通过的,那么为了最小的改动,就可以结合函数的默认参数和占位参数,只对函数的参数做些修改即可达到编译通过的目的,改动后的代码参考如下:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值