c++的const小总结

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c++的const小总结相关的知识,希望对你有一定的参考价值。

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小总结的主要内容,如果未能解决你的问题,请参考以下文章

C++ const总结

《c++ const 详细总结》--转载

关于C++ const 的全面总结

关于C++ const 的全面总结《转》

C++中const关键字的使用总结

c++的const总结(转)