可以使用表达式 const_cast<T>(v) 更改指针或引用的 const 或 volatile 限定符。(在新式强制类型转换中,只有 const_cast<> 可以删除 const 限定符。)T 必须是指针、引用或指向成员的指针类型。
class A
{
public:
virtual void f();
int i;
};
extern const volatile int* cvip;
extern int* ip;
void use_of_const_cast()
{
const A a1;
const_cast<A&>(a1).f(); // remove const
ip = const_cast<int*> (cvip); // remove const and volatile
}
|