Condividi tramite


operatore di const_cast

rimuove const, volatilee __unaligned attributi da una classe.

const_cast < type-id > ( expression )

Note

Un puntatore a qualsiasi tipo di oggetto o un puntatore a un membro dati può essere esplicitamente convertito in un tipo che è identico eccetto const, volatilee __unaligned qualificatori.Per i puntatori e i riferimenti, il risultato farà riferimento all'oggetto originale.Per i puntatori ai membri dati, il risultato farà riferimento allo stesso membro del puntatore originale (di uncast) al membro dati.A seconda del tipo di oggetto a cui si fa riferimento, un'operazione di scrittura tramite il puntatore risultante, il riferimento, o un puntatore a membro dati potrebbero produrre un comportamento indefinito.

Non è possibile utilizzare const_cast operatore direttamente per eseguire l'override dello stato costante di una variabile costante.

const_cast l'operatore di conversione di un valore di puntatore null al valore di puntatore null del tipo di destinazione.

Esempio

// 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();
}

Il contenuto della riga const_cast, il tipo di dati this il puntatore viene const CCTest *.const_cast l'operatore viene modificato il tipo di dati this puntatore a CCTest *, consentendo il membro number per essere modificato.Il cast piena solo il resto dell'istruzione in cui è presente.

Vedere anche

Riferimenti

Operatori di cast

Parole chiave C++