14 March 2013
const关键字可以用来限定变量不可以被修改,基于这个特性,程序员可以用这个关键字来提高程序的健壮性,这也是程序员面试常见考点。
  • 常变量 const修饰的变量不可以修改该变量的值。

  • 常引用 在函数void Func(A a)中,传递了一个临时对象a,该对象要进行构造、拷贝、析构这些过程,运行效率会大大降低。由于该函数是按值传递,所以使用void Func(const A &a),这样不会重新创建临时变量,只是常引用原始变量,不会进行构造、析构等过程,可以提高执行效率。

  • const修饰函数返回值 const修饰过的函数返回值是常量,形如const getA(),这样,可以避免如下代码错误:

      A a;
      getA() = a;
    
  • 常函数 形如void Func(int a) const,在该函数体内,变量a的值不可以更改,包含该函数的类的其他成员变量的值,不会更改。同时,也会通知使用该方法的程序员:这个函数是常函数,不会改变任何值,放心使用。
  • 指向const对象的指针

      const double *ptr;
    

    *放在离变量近的位置比较方便理解。ptr是一个指针,指向double类型,ptr指向的值(*ptr)是常量,不可以更改。同时,const对象指针也只能赋值给const对象指针,因为如果可以赋值,之前的const限定也就无效了。也可以像下面这样定义,含义是一样的。

      double const *ptr;
    
  • const指针

      int * const a;
    

    表明该指针是常量,不可以更改。


原文链接:CONST关键字,转载请注明来源!

EOF