const_cast

王朝百科·作者佚名  2010-04-18  
宽屏版  字体: |||超大  

用法:const_cast<type_id> (expression)

该运算符用来修改类型的const或volatile属性。除了const 或volatile修饰之外, type_id和expression的类型是一样的。

一、常量指针被转化成非常量指针,并且仍然指向原来的对象;

二、常量引用被转换成非常量引用,并且仍然指向原来的对象;

三、常量对象被转换成非常量对象。

Voiatile和const类试。举如下一例:

class B{

public:

int m_iNum;

};

void foo(){

const B b1;

//b1.m_iNum = 100; //comile error

B &b2 = const_cast<B&>(b1);

b2. m_iNum = 200; //fine

}

上面的代码编译时会报错,因为b1是一个常量对象,不能对它进行改变;

使用const_cast把它转换成一个非常量对象,就可以对它的数据成员任意改变。注意:b1和b2是两个不同的对象。

 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝百科 版权所有