C++ 程式設計
外觀
const_cast 關鍵字可以用來移除物件中的 const 或 volatile 屬性。目標資料型別必須與源型別相同,除了(當然)目標型別不必具有相同的 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
}