C++关键字之const

C++关键字之const

C中的const

C中const修饰只读变量,编译器在编译期间不知道其存储的内容。通常不为普通 const 只读变量分配存储空间,而是将它们保存在符号表中,这使得它成为一个编译期间的值,没有了存储与读内存的操作。

要想修改const修饰的变量的值, 可用volatile修饰。因为:
用volatile修饰的变量表示可以被某些编译器未知的因素更改,比如操作系统、硬件或者其它线程等。遇到这个关键字声明的变量,编译器对访问该变量的代码就不再进行优化,从而可以提供对特殊地址的稳定访问。

const可以修饰一般变量、数组、指针、函数参数、函数返回值。

C++中的const

C++中const关键字在C的基础上进行了扩展:修饰类的数据成员、修饰类的成员函数
使用要求如下:
1. const修饰类数据成员,必须在构造函数的初始化列表中初始化
2. const修饰类成员函数,实际修饰隐含的this,表示在类中不可以对类的普通成员(包括数据成员和成员函数)进行修改,可以对静态成员变量进行修改。
3. 若想要修改const修饰的成员函数对 某个数据成员进行修改,那么该数据的定义声明是必须加mutable关键字

因为类也是一种类型, 所以const修饰的对象类似于const修饰的普通变量!

猜你喜欢

转载自blog.csdn.net/neverwa/article/details/80709437