临时变量

如果引用变量是const,则编译器将在以下两种情况下生成临时变量:
1.实参的类型正确,但不是左值。
2.实参的类型不正确,但可以转换成正确的类型。
左值参数是指可被引用的数据对象,如变量、数组元素、结构成员等等,非左值包括字面常量和包含多项的表达式。
double refcube(const double &ra){ return ra*ra*ra;}
考虑下面的代码:
long edge=5L;
double side=3.0;
double c5=refcube(edge);//实参的类型不正确
double c6=refcube(7.0);//实参的类型正确,但是非左值。
double c7=refcube(side+10.0);//实参为包含多项的表达式。
在这些情况下,编译器都将生成一个临时匿名变量,将函数调用的参数的值传递给该匿名变量,并让ra指向它,这些临时变量只在函数调用期间存在,此后编译器便将其删除。

应尽可能地使用const:
1.使用const可以避免无意中修改数据的编程错误。
2.使用const使函数可以处理const和非const实参,否则将只能接收非const数据。
3.使用const引用能使函数能正确生成并使用临时变量。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值