再谈C++中的const限定符
其实C++的学习过程中我们会发现,其实const的作用还是蛮大的,特别是在定义的时候~Xushine研究院就来总结下const的用法吧~
先看看为什么我们会用到const:使用const限定的成员函数不能改变类的成员变量的值,主要是为了保护成员变量不在该函数中被更改。
1:const用来定义对象(变量)
const int buffSize=512;
注意:1.定义时必须初始化
2.const对象默认为文件局部变量,必须显示地指定为extern,但是非const对象默认为extern
编译器这样做也是有好处的,比如说 const变量可以直接在头文件中定义,在要使用时,源文件
直接包含头文件即可(普通变量只能定义一次,在头文件中声明)
2:指向const变量的指针
const int *pi ;读作:pi为指向int类型const变量的指针 (从右向左读)
注意:const int a=168; pi=&a;
1.在定义时可以不用初始化,因为对于pi来说并不是const的
2.不能通过pi来改变a的值,但可以对pi重新赋值
3.pi也可以非const变量,比如说 int a=5; pi=&5;但同样不能通过pi来改变a的值,可以用其他途径改变a的值
3:const指针
int a=168; int *const pi=&a; 读作:pi指向int类型变量的const指针(从右向左读)
注意:1.定义时必须初始化,因为不能对常量赋值
2.不能重新对pi赋值,就连 pi=pi也是错误的
4.以此类推:指向const对象的const指针
const int a=168; int *const pi=&a;
注意:1.既不能改变pi的指向,也不能改变pi所指向对象的值
这个是最容易搞混淆的地方了,const是让人又爱又恨啊
const做接口限定的功能,还是最常用的的.
博主真是厉害。。是搞技术的。。我看到这些我的脑袋就蒙了。。