码迷,mamicode.com
首页 > 编程语言 > 详细

c++的const小总结(3)

时间:2017-07-01 14:34:30      阅读:152      评论:0      收藏:0      [点我收藏+]

标签:常量   tar   href   初始化   接受   对象   总结   www   string   

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是无符号类型

我们可以发现:不使用常量引用,在函数使用时会有诸多限制。

在形参不会改变的函数中使用普通引用有两个弊端:

  1. 给函数的使用者一种误导:函数可以修改它的实参的值。
  2. 极大地限制函数所能接受的实参类型。我们不能把const对象、字面值或者需要类型转换的对象传递给普通的引用实参。

今天就整理到这里

 

c++的const小总结(3)

标签:常量   tar   href   初始化   接受   对象   总结   www   string   

原文地址:http://www.cnblogs.com/MyNameIsPc/p/7102014.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!