介绍
const在c++中用来修饰内置类型变量,自定义对象,成员函数,返回值,函数参数。修饰的对象不可改变。
用法
- 修饰普通类型的变量:
const int a = 1
;a不可进行赋值操作。 - 修饰指针变量,根据修饰的部分又可分成三种:
– 修饰指针指向的内容:const int* p = &a
;那么p指向的a不可改变
– 修饰指针:int* const p = &a
;那么p指向的地址不可改变,但是地址内的值可以改变
– 修饰指针和指向的内容:const int* const p = &a
;指向的地址和地址内的的值都不可改变 - 修饰函数参数:
– 函数值传递时,形参不可变。但此处可用可不用,应该函数会自动产生临时变量赋值形参值void Cpf(const int a)
– 修饰指针时,防止指针被修改。void Cpf(int *const a)
– 修饰自定义类型的参数传递,使用const+引用可以避免临时对象构建时调用构造函数。void Cmf(const Test& _tt)
- 修饰返回值:
– 修饰内置类型的返回值,const int Cmf()
– 修饰自定义类型的返回值,返回值不可作为左值使用
– 修饰返回的指针或者引用 - 修饰类成员函数:
– 目的是防止成员函数修改被调用对象的值int get_cm()const
。注意const不能和static共同使用,因为static修饰成员函数时,静态成员函数不含this指针,即不能实例化,但是const成员函数必须具体到某一实例。