跳转到内容

C++ 编程

来自维基教科书,开放的书籍,开放的世界

const_cast 关键字可以用来移除对象中的 constvolatile 属性。目标数据类型必须与源类型相同,除了(当然)目标类型不必具有相同的 const 限定符。类型 TYPE 必须是指针或引用类型。

语法
    TYPE* const_cast<TYPE*> (object);
    TYPE& const_cast<TYPE&> (object);

例如,以下代码使用 const_cast 从对象中移除 const 限定符

class Foo {
public:
  void func() {} // a non-const member function
};

void someFunction( const Foo& f )  {
  f.func();      // compile error: cannot call a non-const 
                 // function on a const reference 
  Foo &fRef = const_cast<Foo&>(f);
  fRef.func();   // okay
}

华夏公益教科书