static cast

{{Short description|C++ type conversion operator}}

{{DISPLAYTITLE:static_cast}}

In the C++ programming language, static_cast is an operator that performs an explicit type conversion.{{cite book|title=Programming: Principles and Practice Using C++ |year=2009 |publisher=Addison-Wesley |location=New Jersey, US |isbn=978-0321543721 |page=594 |oclc=988823060 }}

Syntax

static_cast (object);

The type parameter must be a data type to which object can be converted via a known method, whether it be a builtin or a cast. The type can be a reference or an enumerator.

All types of conversions that are well-defined and allowed by the compiler are performed using static_cast.{{cite book |last=Eckel |first=Bruce |title=Thinking in C++ |year=2000 |publisher=Prentice Hall |location=New Jersey, US |isbn=0-13-979809-9 |page=857 |url-access=registration |url=https://archive.org/details/thinkinginc00ecke/page/857 }}{{Failed verification |date=July 2020 |reason=There is no page 857 in this 814-page book. Is this the right edition?}}

The static_cast<> operator can be used for operations such as:

Although static_cast conversions are checked at compile time to prevent obvious incompatibilities, no run-time type checking is performed that would prevent a cast between incompatible data types, such as pointers. A static_cast from a pointer to a class B to a pointer to a derived class D is ill-formed if B is an inaccessible or ambiguous base of D. A static_cast from a pointer of a virtual base class (or a base class of a virtual base class) to a pointer of a derived class is ill-formed.

See also

References