[带头学C++]基础知识[入门篇]----1.16Const关键字

1.const限定符、限制符

       引用C++primer5中对congst的解释:有时我们希望定义这样一种变量,它的值不能被改变。例如,用一个变量来表示缓冲区的大小。使用变量的好处是当我们觉得缓冲区大小不再合适时,很容易对其进行调整。另一方面,也应随时警惕防止程序一不小心改变了这个值。为了满足这一要求,可以用关键字const对变量的类型加以限定:

const int bufSize=512;    //输入缓冲区大小

这样就把 bufsize定义成了一个常量。任何试图为 bufsize 赋值的行为都将引发错误:

bufSize=512;  //错误:试图向const 对象写值

因为 const 对象一旦创建后其值就不能再改变,所以const 对象必须初始化。一如既往初始值可以是任意复杂的表达式:

const  int  i=get size();  //正确:运行时初始化
const  int  j=42;            // 正确;编译时初始化
const  int  k;                 //错误:k是一个未经初始化的常量 

2.如何使用const关键字

     const 是 C++ 中的一个关键字,表示常量。通过使用 const 关键字来声明变量,可以指定该变量的值在声明后不能被修改。(本质修饰的对象是变量,使用const修饰以后变成只读变量,不可修改,就是常量了)

const 关键字的用法有以下几种:

1.声明常量

const int num = 10; // 声明一个常量 num,并初始化为 10

       在声明常量时,需要在类型前加上 const 关键字,表示该变量是一个常量。一旦常量被初始化后,其值将不能再改变。 

2. 函数参数中使用 const

void printValue(const int num) {
    // 函数中的代码
    // 不会修改 num 的值
}

      在函数参数中使用 const 关键字可以表示该参数是一个只读参数,在函数中不能修改它的值。这样可以确保函数内部不会无意间修改传入的参数。

3.对象成员中使用 const

class MyClass {
private:
    const int value; // 声明一个常量成员变量 value
public:
    MyClass(int val) : value(val) {
        // 构造函数中初始化常量成员变量 value
    }
    void printValue() const {
        // 常量成员函数,不会修改对象的成员变量
        // 可以读取成员变量的值
    }
};

        在类中使用 const 可以声明常量成员变量,表示该成员变量在对象创建后不能被修改。同时,在成员函数后面添加 const 关键字,可以表示该成员函数是一个常量成员函数,它不会修改对象的任何成员变量。

默认状态下,const 对象仅在文件内有效

3.引用const对象

      可以把引用绑定到 const 对象上,就像绑定到其他对象上一样,我们称之为对常量的引用(reference to const)。与普通引用不同的是,对常量的引用不能被用作修改它所绑定的对象:

const  int  num = 255;
const  int  &yongnum  =  num ; //正确:引用及其对应的对象都是常量

yongnum  =42;    //错误:yongnum是对常量的引用 不可修改
int &yongnum2  =  num;     //错误:试图让一个非常量引用指向一个常量对象
 

这里引用一下c++ prime 5里面对应常量引用的解释 

[带头学C++]基础知识[入门篇]----1.16Const关键字_第1张图片

 

你可能感兴趣的:(C++从基础到抗大旗,c++,开发语言,学习,数据结构)