跳轉到內容

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
}

華夏公益教科書