6.6.1 实参类型转换

本文探讨了C++中实参类型转换的情况,包括整型提升和算术类型转换。同时,分析了函数重载时const的影响,如何根据常量引用和常量指针选择合适的函数进行匹配。
摘要由CSDN通过智能技术生成

练习6.52

void manip(int,int);
double dobj;

(a)

manip('a','z');

char提升成int,属于通过整型提升实现的匹配。

(b)

manip(55.4,dobj);

两个double类型的实参转换成(切除小数部分后)int,属于算术类型的转换。

练习6.53

(a)

int calc(int&,int&);
int calc(const int&,const int&);

第二条声明加了个顶层const,从普通引用变成常量引用。传入常量对象,第二个函数可行,传入非常量对象,选用第一个函数。

(b)

int calc(char*,char*);
int calc(const char*,const char*);

加了个底层的const,第二条声明的指针形参指向常量。如果实参是指向常量的指针,调用形参是const char*的函数;如果实参是指向非常量的指针,调用形参是普通指针的函数。

©

int calc(char*,char*);
int calc(char* const, char* const);

第二条声明中的形参加了个顶层const,一个拥有顶层const的形参无法和另一个没有顶层const的形参区分开,因此第二条语句算是重复声明了int calc(char*,char*)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值