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;
}

   

原文地址:https://www.cnblogs.com/yangwenhuan/p/10360561.html