static_cast
I programmeringsspråket C++ är static_cast
en operatör som utför en explicit typkonvertering .
Syntax
static_cast <typ> ( objekt ) ; _
Typparametern måste vara en datatyp till vilken objekt kan konverteras via en känd metod, oavsett om det är en inbyggd eller en cast . Typen kan vara en referens eller en uppräkning. Alla typer av konverteringar som är väldefinierade och tillåtna av kompilatorn utförs med static_cast
. [ misslyckad verifiering ]
Operatorn static_cast<>
kan användas för operationer som:
- konvertera en pekare av en basklass till en pekare av en icke-virtuell härledd klass ( nedsändning );
- konvertera numeriska datatyper som enums till ints eller floats .
Även om static_cast-
omvandlingar kontrolleras vid kompilering för att förhindra uppenbara inkompatibiliteter, utförs ingen typkontroll av körtid som skulle förhindra en cast mellan inkompatibla datatyper, såsom pekare. En static_cast
från en pekare till en klass B
till en pekare till en härledd klass D
är dåligt utformad om B
är en otillgänglig eller tvetydig bas av D
. En static_cast
från en pekare för en virtuell basklass (eller en basklass för en virtuell basklass) till en pekare för en härledd klass är dåligt utformad.