课程
/后端开发
/C++
/C++远征之封装篇(下)
请问在5:28的时候,说到this是常指针,而常指针指向的数据是不能修改的,这一点没懂。指针是常指针,也就是说指针指向的地址是不能修改的,那为什么这个地址内存中的值也是不能被修改的呢?
2020-05-13
源自:C++远征之封装篇(下) 5-1
正在回答
const 指针 就是只能改变指的位置,但是不能修改值
const * this 和 * const this 这两种定义方式,const 修饰的都是 *,也就是说这两种定义方式的指针指向都是不能被修改的,因为 const 优先考虑修饰其左边的符号,左边没有符号才会修饰右边的符号,这两种定义方式内存地址中的数据都是可以被改变的
const *this指针,只授予this指针读取权限,限制了修改权限,此时内存地址中的值只能读取、无法修改。
*const this指针,锁定this指针的指向的对象,但无法指向其它对象,此时内存地址中的值可以读取和修改。
举报
封装--面向对象三大特征之一,通过案例让C++所学知识融会贯通