static_cast

In C++ type conversion, the static_cast operator performs an explicit type conversion.[1]

Syntax

static_cast<type> (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.[2]

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

  • converting a pointer of a base class to a pointer of a non-virtual derived class;
  • converting numeric data types such as enums to ints or ints to floats.

Although static_cast conversions are checked at compile time to prevent obvious incompatibilities, no run-time type check is performed that would prevent a cast between incompatible data types, such as pointers. Also, the result of a static_cast from a pointer of a virtual base class to a pointer of a derived class is undefined.

gollark: Probably because they're impossible to empirically test and tied up with politics.
gollark: It seems like good social/political/economic coordination mechanisms are a really underrated area of research.
gollark: If you did it properly, people might not even notice due to something something filter bubbles.
gollark: Well, I meant more "have exactly the same government rule everyone but emphasise different things to different people/blatantly lie".
gollark: Oh no.

See also

  • dynamic cast
  • reinterpret_cast
  • const_cast
  • duration_cast

References

  1. Programming: Principles and Practice Using C++. New Jersey, US: Addison-Wesley. 2009. p. 594. ISBN 0321543726. OCLC 988823060.
  2. Eckel, Bruce (2000). Thinking in C++. New Jersey, US: Prentice Hall. p. 857. ISBN 0-13-979809-9.
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.