非const 引用形参

来源:互联网 发布:佛山市软件行业协会 编辑:程序博客网 时间:2024/05/22 06:24

对于非const 引用形参有以下几点要注意的:

1. 非const 引用形参只能与完全同类型的非const 对象关联,请看如下例子:

/* Note:Your choice is C IDE */
#include<iostream>
using namespace std;
int change(int &val)
{
return ++val;
}
void main()
{
const int a=2;
change(a); //wrong
short b=3;
change(b); //wrong
change(0); //wrong
int c=3;
int d=4;
change(c+d);//wrong



这些情况的调用都是错误的。

2 .  用字符串常量作为实参去初始化非const string 引用形参也是错误的,其错误和上例子的change(0)调用是一样的:不能用const 变量去初始化非const 对象。

 因此应该将不需要修改的引用形参定义为const 引用。普通的非const引用形参在使用时不太灵活。这样的形参即不能用cosnt对象初始化,也不能用字面值或产生的右值表达式进行初始化。

0 0
原创粉丝点击