c/c++ const this指针
程序员文章站
2022-05-25 16:19:09
const this指针 方法列表后面的const是什么含义呢? 答案:不可以在方法里修改成员变量 注意点: 非const方法里调用const方法是可以的 const方法里调用const方法是可以的 const方法里调用非const方法是 不可以的。 原因: this指针。 因为非const方法里的 ......
const this指针
方法列表后面的const是什么含义呢?答案:不可以在方法里修改成员变量
class test{ public: void fun()const{ //data = 10;//编译不过,因为有const关键字,所以不可以修改this指针所指向的内容 } private: int data; };
注意点:
- 非const方法里调用const方法是可以的
- const方法里调用const方法是可以的
- const方法里调用非const方法是不可以的。
原因:this指针。
因为非const方法里的this指针是有const限制的,所以当在const方法里调用非const方法时,无法给非const方法一个无const限制的this指针。
#include <iostream> using namespace std; class test{ public: test(int d = 0) : data(d){} void a()const{ b(); } //如果去掉方法b的const关键字,编译无法通过 void b()const{ } ~test(){} private: int data; }; int main(){ test t(10); }
上一篇: BZOJ2244 拦截导弹