const是一个修饰关键字,可以修饰变量,函数参数,返回值,甚至函数定义体。
const是恒定不变的意思。
1、对于函数参数,const只能用于修饰传入参数。
输入参数如果采用值传递,由于函数将自动产生临时变量用于复制该参数,该输入参数本来就无需保护,所以不要加const修饰。
对于自定义类型,由于产生临时对象的构造,复制,析构比较消耗时间,一般选择使用引用传递。
对于内部数据类型,值传递与引用传递效率几乎相当。
2、用const修饰函数的返回值。很少用,不管。
3、const成员函数。
任何不会修改数据成员的函数都应该声明为const类型。
注意点:
const对象只能访问const函数,非const对象可以访问所有成员函数。
const对象的成员是不可修改的。
const成员函数不可以修改对象的数据。它会在编译时进行检查。