this指针的类型
2015-08-23 23:24
369 查看
通常情况下,当对象是非const 常量时,this指针的类型是 MyClass * const, 也就是指针常量,不能改变指针的指向 ; 当对象是const 常量时,this 指针的类型是 const MyClass const*.
常量成员函数希望接受的this 指正的类型就是 const MyClass* const, 于是,想在常量成员函数中,改变成员变量的状态,可以这样
或者使用C++风格的去掉const 属性
当然,还有一种常见的方法,就是把state 成员申明为mutable:
常量成员函数希望接受的this 指正的类型就是 const MyClass* const, 于是,想在常量成员函数中,改变成员变量的状态,可以这样
void f() { ((MyClass*)this)->state = ... }
或者使用C++风格的去掉const 属性
(const_cast<B*>this)->state = ...
当然,还有一种常见的方法,就是把state 成员申明为mutable:
mutable int state;
相关文章推荐
- Android中处理崩溃异常
- mysql事务处理用法
- 月薪3000与月薪30000的文案区别
- 跟我一起数据挖掘(1)——建立数据仓库的意义
- 马哥2013年运维视频笔记 day01 系统基础知识
- 道藏
- UI中为什么用copy修饰NSString类型属性
- 【8-23】node.js学习笔记
- java多线程详解(3)-线程的互斥与同步
- 图片与路径(Path)的应用
- error:assign attribute must be unsafeunretained
- 【8-23】MFC学习笔记 01
- centos安装scrapy
- 闭包(Closures)
- 使用Winhex查看U盘数据
- POJ 3666--Making the Grade(dp)
- jdk8forwindow8的下载与安装
- iOS UI基础-4.2应用程序管理 Xib文件使用
- NSFileManager
- Codeforces Round #317 [AimFund Thanks-Round] (Div. 2) Minimization dp