关键字 const

const的用法非常灵活,能够大大增强程序的健壮性.

  1. 定义常量
const int c = 0;
  1. 保护变量不被更改
void f(const int i) { i=10;//error! }
      //如果在函数体内修改了i,编译器就会报错

上述代码传递的是副本,更改影响并不大,const往往和引用一起使用,节省空间并增强健壮性

void f(const int &i){...}

i 的值为引用,并且不允许被更改.
也可以对返回值为引用的变量加上这个修饰,这样这个引用就不能被更改

  const string& get_name() const 
  { 
    return name; 
  } 
  1. 全局调整参数,类似宏定义
  2. 类型安全检查
void f(const int i) { .........}
      //对传入的参数进行类型检查,不匹配进行提示

宏定义仅仅对宏进行替换,没有类型检查,往往会导致意想不到的错误.

  1. 修饰成员函数
    const修饰的成员函数,不能改变这个类对象的值(指针访问可以,但是并不推荐)
  • const对象只能访问const成员函数,一般对象则都可以(包括const和其他共有函数)
  1. 节省空间
    当定义const的时候,仅仅给出了常量的内存地址,并没有分配内存.
    在程序执行过程中,仅仅进行一次内存的分配,即使这个值被引用多次.

你可能感兴趣的:(关键字 const)