const主要作用是保证修饰的变量不能够被修改,即被const修饰的变量都会变成常量
主要有四个不同的使用场景
修饰成员变量的时候可以不赋值,但是在类的初始化列表必须赋值
class A
{
public:
const int a;
A():a(10)
{
};
};
初始化的时候必须赋值
const int aa = 10;
如果用const修饰 int*, 那么说明这个指向常量的指针的值是不能变化的
上图例子说明,这个指针指向的常量是不能变化的
这里要理解的是这里指的是 *p 是不可以变化的, 但是变量a 是可以变化的,而且指针p的地址也是可以变化的
但是如果用const修饰变量值int* const p = &a; 说明这个指针指向的地址是不能变化的
表示这个引用的值是不能够被修改的,一般用于形参类型,即避免了拷贝,又避免了函数对值的修改;
可以看到应用的值是readonly的
可以看到在getA 这个const函数内修改成员变量的值是不被允许的