Jump to content

英文维基 | 中文维基 | 日文维基 | 草榴社区

static_cast

From Wikipedia, the free encyclopedia

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

Syntax

[edit]
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][failed verification]

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

[edit]

References

[edit]
  1. ^ Programming: Principles and Practice Using C++. New Jersey, US: Addison-Wesley. 2009. p. 594. ISBN 978-0321543721. OCLC 988823060.
  2. ^ Eckel, Bruce (2000). Thinking in C++. New Jersey, US: Prentice Hall. p. 857. ISBN 0-13-979809-9.