C++中的const关键字有很多意思。看了这个播放列表的前四个视频,小小总结一下。

变量中

const int i;  // i不能变

const int *p1 = &i;  // *p1不能变, p1能变

int* const p2;  // p2不能变,*p2能变

const int* const p3;  // 都不能变

int const *p4 = &i;  // 与 const int *p4 = &i; 相同

const_cast<int>(i) = 6;  //消除const属性

int j;

static_cast<const int&>(j) = 7;  //赋予const属性

函数中

  • const reference作为参数传入,可避免local variable被改变。
  • const reference作为返回值,函数调用者不能修改返回值。
  • const function: 不可修改类中任何成员变量,不可调用非const function
  • const function可重载,具体函数调用版本由参数决定(尚未明了具体是怎么决定的)
  • mutable 成员变量可以在const函数中被改变。