İngilizce dilinde oku

Aracılığıyla paylaş


const_cast operatörü

Kaldırır const, volatile, ve __unaligned bir sınıftan öznitelikleri.

const_cast < type-id > ( expression )

Notlar

Herhangi bir nesne türünü gösteren bir işaretçi veya veri üyesi için bir işaretçi açıkça dışında aynı türe dönüştürülemez const, volatile, ve __unaligned niteleyicileri. Sonuç, işaretçiler ve başvurular için özgün nesneye başvuruyor olacaklardır. Veri üyeleri için işaretçiler, sonuç veri üyesi özgün (uncast) işaretçi olarak aynı üye için başvuruda bulunacak. Başvurulan bir nesne türüne bağlı olarak, bir yazma işlemi aracılığıyla elde edilen işaretçi, başvuru veya veri üyesi işaretçisine tanımsız davranışı oluşturabilecek.

Kullanamazsınız const_cast doğrudan sabit değişken sabit durum geçersiz kılmak için işleci.

const_cast İşleci bir null işaretçi değeri hedef türü işaretçi null değerine dönüştürür.

Örnek

// expre_const_cast_Operator.cpp
// compile with: /EHsc
#include <iostream>

using namespace std;
class CCTest {
public:
   void setNumber( int );
   void printNumber() const;
private:
   int number;
};

void CCTest::setNumber( int num ) { number = num; }

void CCTest::printNumber() const {
   cout << "\nBefore: " << number;
   const_cast< CCTest * >( this )->number--;
   cout << "\nAfter: " << number;
}

int main() {
   CCTest X;
   X.setNumber( 8 );
   X.printNumber();
}

Satırını içeren üzerinde const_cast, veri türü this işaretçisi const CCTest *. const_cast Operatörü veri türünü değiştirir this işaretçisine CCTest *, üye vererek number değiştirilecek. Cast yalnızca göründüğü ifadesi kalanı için sürer.

Ayrıca bkz.

Başvuru

Atama operatörleri

C++ anahtar sözcükler