const关键字在c++中是用来修饰内置类型变量、自定义对象、成员函数、返回值、函数参数。
一:const修饰普通类型的变量
const int a = 7;
a被定义为一个常量,a的值不可以修改。
二:cont修饰指针变量
const修饰指针有以下三种情况:
a: const 修饰指针指向的内容
b: const 修饰指针
c: const 修饰指针和指针指向的内容
a 该情况称为常量指针, 指针所指向的数据不能被修改,但指针可以指向不同的地址。
const int *ptr;
int value = 10;
ptr = &value;
*ptr = 20; // 错误,不能修改指针指向的数据
b 常量指针,指针的值不能变,但是可以修改指针所指向的数据
int value = 10;
int *const ptr = &value;
*ptr = 20; // 允许,修改指针指向的数据
int value2 = 30;
ptr = &value2; // 错误,不能改变指针的值
c 即修饰指针也修饰指针所指向的内容,指针和指向的数据均不能修改
const int *const ptr;
三:常量成员函数
可以使用const关键自来表示函数不会修改类的成员变量。这样的函数可以被用在常量对象上。
class MyClass {
public:
int getValue() const { return value; } // 常量成员函数
private:
int value = 10;
};
四:常量引用
常量引用用于防止对引用的对象进行修改,并且可以避免复制开销,特别是在传递大对象时。
void printValue(const int &value) {
std::cout << value << std::endl;
// value = 20; // 错误,不能修改常量引用
}