const_cast, opérateur
Supprime le ou volatile
les const
attributs d’une __unaligned
classe.
Syntaxe
const_cast <type-id> (expression)
Notes
Un pointeur vers n’importe quel type d’objet ou pointeur vers un membre de données peut être converti explicitement en un type identique, à l’exception des qualificateurs et __unaligned
des const
élémentsvolatile
. Pour les pointeurs et des références, le résultat fait référence à l'objet d'origine. Pour les pointeurs vers des données membres, le résultat fait référence au même membre que le pointeur d'origine (sans cast) vers les données membres. Selon le type de l'objet référencé, une opération d'écriture via le pointeur résultant, la référence, ou le pointeur vers les données membres peut entraîner un comportement non défini.
Vous ne pouvez pas utiliser l’opérateur pour remplacer directement l’état const_cast
de constante d’une variable constante.
L’opérateur const_cast
convertit une valeur de pointeur Null en valeur de pointeur Null du type de destination.
Exemple
// 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();
}
Sur la ligne contenant le const_cast
, le type de données du this
pointeur est const CCTest *
. L’opérateur const_cast
modifie le type de données du this
pointeur CCTest *
, ce qui permet au membre number
d’être modifié. Le cast dure uniquement pendant le reste de l'instruction dans laquelle il apparaît.
Voir aussi
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour