首页 > 代码库 > c++的const小总结(3)
c++的const小总结(3)
c++的const小总结(2)
今天来讨论指针或引用的形参与const的关系。
首先说明:c++里规定同名函数中参数必须有明显区别。
例如void reset(int &i) 和 void reset(const int &i)这样的同名函数是通不过编译的。
int i = 0; const int ci = i; string::size_type ctr = 0; reset(&i); reset(&ci); //错误,不能用指向const int对象的指针初始化int* reset(i); reset(ci); //错误,不能把普通引用绑定在const对象ci上 reset(42); //错误,不能把普通引用绑定在字面值上 reset(ctr); //错误,类型不匹配,str是无符号类型
我们可以发现:不使用常量引用,在函数使用时会有诸多限制。
在形参不会改变的函数中使用普通引用有两个弊端:
- 给函数的使用者一种误导:函数可以修改它的实参的值。
- 极大地限制函数所能接受的实参类型。我们不能把const对象、字面值或者需要类型转换的对象传递给普通的引用实参。
今天就整理到这里
c++的const小总结(3)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。