在C++中,const
关键字具有多种用法,主要用于声明常量,确保某些变量的值在程序运行期间不会被修改。以下是const
在C++中的一些常见用法:
1.声明常量:
使用const
声明的变量是常量,其值在初始化后不能再被修改。
cpp
const int MAX_SIZE = 100; // MAX_SIZE 是一个常量,其值为100
2.指针和const
指向常量的指针:这种指针指向的值不能被修改。
cpp
const int *p = &some_int; // p 指向一个整数,但这个整数的值不能被修改
常量指针:这种指针本身的地址不能被修改,但指向的值可以修改(除非指向的值也是常量)。
cpp
int x = 10;
int *const ptr = &x; // ptr 是一个常量指针,指向x。ptr的值(即地址)不能被修改
指向常量的常量指针:这种指针既不能被修改,指向的值也不能被修改。
cpp
const int value = 10;
const int *const ptr = &value; // ptr 和 *ptr 都不能被修改
3.const成员函数
在类的成员函数声明后面加上const
,表示这个函数不会修改类的任何成员变量(除了声明为mutable
的成员变量)。
cpp
class MyClass {
public:
int getValue() const { return value_; } // 这是一个const成员函数
private:
int value_;
};
4.const参数
通过const修饰函数参数,可以确保在函数体内不会修改这个参数的值。
cpp
void printValue(const int value) {
// 在这里不能修改value的值
std::cout << value << std::endl;
}
5.const修饰数组或对象的初始化器
使用const可以确保在初始化数组或对象时,不会修改其值。
cpp
const int arr[] = {1, 2, 3, 4, 5}; // arr 是一个常量数组,其元素不能被修改
6.const在类型别名中的应用
在C++11及以后的版本中,可以使用using
关键字定义类型别名,并结合const
来定义常量类型的别名。
cpp
using ConstInt = const int; // 定义一个常量整数类型的别名
ConstInt a = 10; // a 是一个常量整数,其值不能被修改