&类型参数的坑
2016-05-31 19:50
218 查看
大家都知道const&类型参数与&类型参数的区别是能否通过形参更改实参
在传送什么样子的参数上面二者还有一点区别,举个例子
void generate_func(string& s){
cout<<"this is generate"<<endl;
}
const_func("sssss");编译通过
generate_func("sssssss");编译错误
无论哪个调用都使用了隐式转换,将字面值转换为string ,c++不允许将临时量绑定到&形参上面,具体到这里就是string&。
至于为什么不允许呢,没有这个必要罢了。假设允许的话,也没有什么用途,绑定到&上面的是一个临时量,失去了&变量的本意,如此c++就将这种情况列为非法
在传送什么样子的参数上面二者还有一点区别,举个例子
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++就将这种情况列为非法
相关文章推荐
- box相关css属性
- acm_Humble Numbers
- 贪心法——最优装载问题
- HUSTOJ 2796 && SPOJ1811
- leetcode 217. Contains Duplicate
- 链表-Remove Nth Node From End of List(删除指定的节点)
- Middle-题目96:187. Repeated DNA Sequences
- MYSQL函数
- 第十四周项目—阅读并运行程序,解释程序执行得到的结果(2)
- cocos2d-x案例开发大全 几何跳跃源码解析及交叉编译再现
- 深复制体验
- 初识Webx 1
- css3很美的蟠桃动画
- UWP开发-在UWP中使用sqlite
- [Codeforces137B]Permutation(贪心?思路?,水题)
- virtualenv 使用
- 突破限制爬取网页数据 googlesholar为例【转】
- 长周末结束
- 1087. All Roads Lead to Rome (30) PAT
- 动态数组类