const关键字是一个承诺,他承诺一些东西是不变的
const首先作用于左边的东西;如果左边没东西,就做用于右边的东西
1、指定一个常数
则这个整形的a变量变成一个常量
有一些数字在程序中你不希望被改变,可以使用const关键字
2、常量指针、指针常量
常量指针:
int不可以变(地址的内容不可以变)
int*可以变(地址可以变)
这里用int const *p=&a 也是一样的
指针常量:
int可以变(地址的内容可以变)
int*不可以变(地址不可以变)
指向常量的常量指针:
3、常量引用
常量引用主要来修饰形参,防止误操作。
在函数形成参列表中,可以加const修饰形参,防止形参改变实参。
4、类中使用const
1、在一个类中,任何不会修改数据成员的函数都应该声明为const类型
2、 const 对象可以调用 const 成员函数,而不能调用非const修饰的函数。
3、const 成员函数可以访问非const对象的非const数据成员、const数据成员,也可以访问const对象内的所有数据成员;
4、非const 成员函数可以访问非const对象的非const数据成员、const数据成员,但不可以访问const对象的任意数据成员;
5、如果只有const成员函数,非const对象是可以调用const成员函数的。
当const版本和非const版本的成员函数同时出现时,非const对象调用非const成员函数。
拓展
如果常量函数想对一些变量进行修改可以在变量上面加mutable:允许函数是常量方法,但是可以修改变量