C/C++ const
1、常量,一定要且只能被初始化(包括类的初始化列表),不能被赋值,即不能修改。
2、常量成员函数,不能修改成员变量。
3、常量对象,不能调用非常量成员函数,因为非常量成员函数可能修改对象的成员变量。
4、指针常量(*const),指针本身是常量,指针指向的内容可以被修改。对应指针变量。
5、常量指针(const*),常量的指针,即指针指向的内容不能被修改,但指针本身是变量,可以被修改。
6、常量引用,通常用于函数形参,避免值拷贝,同时防止函数内对参数进行修改。
7、数组名,可以看做指针常量。
#include <vector>
class A
{
public:
const int x = 1; // 常量
const char y;
A(): y('c') {}; // 初始化列表
int getValue() const; // 常量成员函数
int getValue(); // 非常量成员函数
};
void foo(const std::vector<int> &v) // 常量引用
{
const A a; // 常量对象
int val = 2;
int * const pInt1 = &val; // 指针常量
const int * pInt2;// 常量指针
int arr[] = {1, 2, 3}; // 数组名
int *pArr1 = arr;
const int *pArr2 = arr;
int const *pArr3 = arr;
const int const *pArr4 = arr;
}

浙公网安备 33010602011771号