Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Tar bort attributen const, volatileoch __unaligned från en klass.
Syntax
const_cast <type-id> (expression)
Anmärkningar
En pekare till en objekttyp eller en pekare till en datamedlem kan uttryckligen konverteras till en typ som är identisk förutom , constvolatileoch __unaligned kvalificerare. För pekare och referenser refererar resultatet till det ursprungliga objektet. För pekare till datamedlemmar refererar resultatet till samma medlem som den ursprungliga (ocastade) pekaren till datamedlemmen. Beroende på typen av det refererade objektet kan en skrivåtgärd via den resulterande pekaren, referensen eller pekaren till datamedlemmen ge ett odefinierat beteende.
Du kan inte använda operatorn const_cast för att direkt åsidosätta en konstant variabels konstanta status.
Operatorn const_cast konverterar ett null-pekarvärde till värdet för nullpekaren för måltypen.
Exempel
// 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();
}
På raden som innehåller const_castär const CCTest *pekarens this datatyp . Operatorn const_cast ändrar pekarens this datatyp till CCTest *, så att medlemmen number kan ändras. Casten varar endast för resten av instruktionen där den visas.