C++基础(C++中const的基础介绍)

C++基础(C++中const的基础介绍),第1张

C++基础(C++中const的基础介绍),第2张

1、const 引用是指向 const 对象的引用:
  const int ival = 1024;
  const int &refVal = ival; // ok: both reference and object are const
  int &ref2 = ival; // error: non const reference to a const object
  可以读取但不能修改 refVal。同理,用 ival 初始化 ref2 也是不合法的。ref2 是普通的非 const 引用,因此可以用来修改 ref2 指向的对象的值。通过 ref2 对 ival 赋值会导致修改 const 对象的值。为阻止这样的修改,需要规定将普通的引用绑定到 const 对象是不合法的。
  const 引用可以初始化为不同类型的对象或者初始化为右值,如字面值常量:
  int i = 42;
  // legal for const references only
  const int &r = 42;
  const int &r2 = r + i;
  同样的初始化对于非 const 引用却是不合法的,而且会导致编译时错误。
  即:非 const 引用只能绑定到与该引用同类型的对象。而const 引用则可以绑定到不同但相关的类型的对象或绑定到右值。
  2、每种容器类型定义了一种名为 const_iterator 的类型,该类型只能用于读取容器内元素,但不能改变其值。即使用 const_iterator 类型时,我们可以得到一个迭代器,它自身的值可以改变,但不能用来改变其所指向的元素的值。可以对迭代器进行自增以及使用解引用操作符来读取值,但不能对该元素赋值。
  例如,如果text是vector 类型,程序员想要遍历它,输出每个元素,可以这样编写程序:
  // use const_iterator because we won't change the elements
  for (vector::const_iterator iter = text.begin();iter != text.end(); ++iter)
  cout

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » C++基础(C++中const的基础介绍)

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情