函数重载、引用

函数重载

作用:函数名可以相同,提高复用性
函数重载满足条件:
1、同一个作用域
2、函数名称相同
3、函数参数类型不同或者个数不同或者顺序不同
4、函数的返回值不可以作为函数重载的条件
例子:

void print(const char*str,int width);#1
void print(double d,int width);#2
void print(long l,int width);#3
void print(int i,int width);#4
void print(const char*str);#5

使用print函数时,编译器将根据所采取的用法使用相应的特征标的原型:

print("abc",14)//使用1
print("abc")//使用5
print(13.0,14)//使用2
print(13,14)//使用4
print(13L,14)//使用3

注意:

unsigned int year = 1111;
print(year,6)//不会有匹配的
/*调用时没有匹配的原型不会自动停止使用其中的某个函数,因为c++将尝试使用
标准类型转换强制进行匹配,如果2原型是唯一的print原型,则函数调用print(year,6)会将year转换为double类型,但在上面的函数原型中,
有三个将数字作为第一个参数原型的,因此有三种转换year的方式,在这种情况下c++将拒绝这种函数调用
*/

匹配函数时并不区分const和非const变量

void dribble(char* bits);
void dribble(const char* cbits);
void dabble(char* bits);
void drivel(const char* bits);
//dribble有两个函数原型,一个用于const指针,另一个用于常规指针,编译器将根据实参是否为const来决定使用那个原型。dabble只和非const的匹配
//drivel可以和const与非const匹配。drivel和dabble之间之所以有这种差距,主要是由于将非const值赋值给const变量是合法的,反之是不合法的。

引用

引用实际上是一个常量指针。
作用:给变量起别名 。注意:给变量取别名
语法:数据类型 & 别名 = 原名。
引用必须初始化。
引用在初始化之后不可以改变
函数传递参数时,可以利用引用技术让形参修饰实参(简化指针修改实参)、

临时变量、引用参数、const

如果实参与引用参数不匹配的时候,c++将生成临时变量,当前,仅当参数为const引用时才允许这样做。
什么时候创建临时变量:
1、实参的类型不正确,不是左值
2、实参的类型不正确,但可以转换为正确类型

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值