本篇博客可以帮助C++初学者深刻理解一些语法的用法及概念,希望可以帮到各位读者
目录
一、缺省参数
1.缺省参数的概念
缺省参数是指在函数声明或定义的时候可以为参数指定一个缺省值,在调用函数的时候如果没有传实参,则会按照缺省值进行计算。
2.缺省参数分类
(1)全缺省参数
指函数定义的时候形参全部都给缺省值。
(2)半缺省参数
指函数定义的时候部分形参给缺省值(必须从右往左边给,不能间隔着给)。
3.说明
学过C语言的老铁应该都知道,我们在写一个函数的时候我们必须要给它参数,如果我们不给参数代码是无法运行的,但是在C++中,可以不给函数参数。
但是我们必须要在函数的定义中给形参赋值,这个就叫缺省值,我们可以定义的时候全都给上缺省值,这就叫全缺省参数,我们也可以给一部分参省值,但必须要从右往左给,这个叫半缺省值,要注意只是缺少,而不是缺少一半,并且必须从右往左边给,不能跳着给。
如果一个参数都不传,函数就会按照缺省值进行计算,如果传参,则会按照传过来的计算,当然可以缺少参数,有两个参数你只传一个是可以的,传过来的值是从左往右传的。
注意:如果函数既有声明又有定义,参省值只能在声明中出现。
二、函数重载
1.函数重载的概念
函数重载:是函数的一种特殊情况,C++允许在同一作用域中声明几个功能类似的同名函数,这些同名函数的形参列表(参数个数 或 类型 或 类型顺序)不同,常用来处理实现功能类似数据类型不同的问题。
(1)参数个数不同
(2)类型不同
(3) 类型顺序不同
2.C++支持函数重载的原理
我们先来说为什么C不支持函数重载,因为编译器在处理的时候不会有任何修饰直接寻找函数名,所以如果函数名一样就会发生冲突。
但是C++编译器处理的时候不是按照函数名寻找的,而是会进行修饰,(每个编译器都有自己的函数修饰规则),所以即使函数名相同也不会冲突。