Udostępnij za pośrednictwem


Operator const_cast

Usuwa const, volatile, i __unaligned atrybutów z klasą.

const_cast < type-id > ( expression )

Uwagi

Wskaźnik do dowolnego typu obiektu lub wskaźnik do elementu członkowskiego danych można jawnie przekonwertować na typ, który jest identyczny z wyjątkiem const, volatile, i __unaligned kwalifikatorów.Wskaźniki i odniesienia wynik będzie odnosić się do obiektu oryginalnego.Wskaźniki do danych członków wynik będzie odnosić się do tego samego członka, jak oryginalny wskaźnik (uncast), aby członek danych.W zależności od typu obiektu, do którego istnieje odwołanie operacja zapisu poprzez wynikowy wskaźnik, odwołanie lub wskaźnik do elementu danych może nie dać niezdefiniowane zachowanie.

Nie można użyć const_cast operatora bezpośrednio zastępują stałej zmiennej status stałej.

const_cast Operator konwertuje wartość na wskaźnik null wartość null wskaźnika typu miejsca docelowego.

Przykład

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

Na linii, zawierających const_cast, typ danych this wskaźnik jest const CCTest *.const_cast Operator zmienia typ danych z this wskaźnik, aby CCTest *, umożliwiając członka number ma zostać zmodyfikowana.Obsada trwa tylko dla pozostałej części instrukcji, w której pojawia się.

Zobacz też

Informacje

Operatory odlewania

Słów kluczowych języka C++