关于const_cast
来源:互联网 发布:淘宝打折工具在哪 编辑:程序博客网 时间:2024/06/03 22:45
用法:const_cast<type_id> (expression) 该运算符用来修改类型的const或volatile属性。除了const 或volatile修饰之外, type_id和expression的类型是一样的。 一、常量指针被转化成非常量指针,并且仍然指向原来的对象; 二、常量引用被转换成非常量引用,并且仍然指向原来的对象; Voiatile和const类似。举如下一例: class B { public: int m_iNum; B() {} }; void foo() { const B b1; //b1.m_iNum = 100; //compile error /* 可以做如下转换,体现出转换为指针类型 */ B *b2 = const_cast<B*>(&b1); /* 或者左侧也可以用引用类型,如果对b3或b4的数据成员做改变,就是对b1的值在做改变 */ B &b3 = const_cast<B&>(b1); b2 -> m_iNum = 200; //fine b3.m_iNum = 300;//fine } int main() { foo(); return 0; } 上面的代码编译时会报错,因为b1是一个常量对象,不能对它进行改变; 使用const_cast可以返回一个非常量指针(或引用)指向b1,就可以通过该指针(或引用)对它的数据成员任意改变。
- 关于const_cast
- 关于const_cast
- [c/c++]关于const_cast
- 关于const_cast的疑问
- 关于static_cast、dynamic_cast、const_cast、reinterpret_cast
- const_cast
- const_cast
- const_cast
- const_cast
- const_cast
- const_cast
- const_cast
- const_cast
- const_cast
- const_cast
- const_cast
- const_cast
- const_cast
- mongodb的分片配置(五)
- PHP 学习资料
- 23种设计模式(6):模版方法模式
- Linux 性能测试与分析(值得收藏)
- Project Euler problem 49
- 关于const_cast
- 索引
- .NET中使用Memcached的相关资源整理
- 23种设计模式(7):中介者模式
- bash
- matlab 图像二维直方图
- 初学Android,OpenGL ES之绘制3D图形(八十二)
- Response 对象
- 23种设计模式(8):观察者模式