您的位置:首页 > 其它

this指针的类型

2015-08-23 23:24 369 查看
通常情况下,当对象是非const 常量时,this指针的类型是 MyClass * const, 也就是指针常量,不能改变指针的指向 ; 当对象是const 常量时,this 指针的类型是 const MyClass const*.

常量成员函数希望接受的this 指正的类型就是 const MyClass* const, 于是,想在常量成员函数中,改变成员变量的状态,可以这样

void f()
{
((MyClass*)this)->state = ...
}


或者使用C++风格的去掉const 属性

(const_cast<B*>this)->state = ...


当然,还有一种常见的方法,就是把state 成员申明为mutable:

mutable int state;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: