Operatore const_cast
Rimuove gli const
attributi , volatile
e __unaligned
da una classe .
Sintassi
const_cast <type-id> (expression)
Osservazioni:
Un puntatore a qualsiasi tipo di oggetto o puntatore a un membro dati può essere convertito in modo esplicito in un tipo identico, ad eccezione dei const
qualificatori , volatile
e __unaligned
. 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 (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 il puntatore al membro dati potrebbe produrre un comportamento non definito.
Non è possibile usare l'operatore per eseguire direttamente l'override const_cast
dello stato costante di una variabile costante.
L'operatore const_cast
converte un valore del puntatore Null nel valore del 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();
}
Nella riga contenente , const_cast
il tipo di dati del this
puntatore è const CCTest *
. L'operatore const_cast
modifica il tipo di dati del this
puntatore in CCTest *
, consentendo la modifica del membro number
. Il cast dura solo per il resto dell'istruzione in cui viene visualizzato.
Vedi anche
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per