&类型参数的坑

原创 2016年05月31日 19:50:56

大家都知道const&类型参数与&类型参数的区别是能否通过形参更改实参

在传送什么样子的参数上面二者还有一点区别,举个例子

void generate_func(string& s){
    cout<<"this is generate"<<endl;
}
void const_func(const string& s){
    cout<<"this is const"<<endl;
}

const_func("sssss");编译通过

generate_func("sssssss");编译错误

无论哪个调用都使用了隐式转换,将字面值转换为string ,c++不允许将临时量绑定到&形参上面,具体到这里就是string&。

至于为什么不允许呢,没有这个必要罢了。假设允许的话,也没有什么用途,绑定到&上面的是一个临时量,失去了&变量的本意,如此c++就将这种情况列为非法


相关文章推荐

inputType参数类型说明

  • 2015年08月05日 11:12
  • 27KB
  • 下载

Java获取泛型参数的类型的方法

最近在使用Google的Gson包进行Json和Java对象之间的转化,对于包含泛型的类的序列化和反序列化Gson也提供了很好的支持,感觉有点意思,就花时间研究了一下。 由于Java泛型的实现机制,...
  • canchew
  • canchew
  • 2012年05月20日 15:12
  • 17892

Swift初学之函数参数类型

  • 2014年06月17日 18:48
  • 55KB
  • 下载

关于引用构造函数形参和实际参数的数据类型必须一致的实验案例

在构造函数后引用函数的话实际的参数必须和构造函数时的形参数据类型一致,为此笔者做了一个实验,代码如下: 笔者首先构造了一个求绝对值的函数zabs(),然后将整型变量b传入函数,计算其绝对值,...

java 带两个类型参数的泛型

  • 2010年06月21日 16:08
  • 59KB
  • 下载

Part3.JNI类型映射和参数传递

如何在Java和C之间传递参数。
  • Del_Zhu
  • Del_Zhu
  • 2015年02月06日 21:10
  • 518
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:&类型参数的坑
举报原因:
原因补充:

(最多只允许输入30个字)