static_cast

読み:スタティック・キャスト
外語:static_cast 英語
品詞:名詞

C++の予約語の一つ。

目次

次の形で、型キャスト(型変換)に用いる。

static_cast <型> (変数)

変換元から変換先へ、あるいは変換先から変換元へ、例えばint型の値をdouble型の変数に代入する際に行なわれれるような暗黙の型キャストが可能な場合にのみ、型キャストが行なわれる。それ以外はコンパイル時にエラーとなる。

Cの場合は、静的な普通の型キャストが使われる。

unsigned char a;

int b;

a = (unsigned char)b;

このような型キャストは、C++ではstatic_cast演算子を用いる。

a = static_cast<unsigned char>(b)

これを用いても、実行時の安全性までは確認されない。桁あふれの有無、その型キャストが安全かどうか、などである。

但し、実行しなくても分かるような危険な型キャストは、コンパイルエラーになる。例えば、次のような場合はエラーとなる。

  • ポインターからintへの変換、あるいはその逆
  • intへのポインターからdoubleへのポインターへの変換など互換性のない変換
  • 全く無関係のクラスへのポインター同士の型キャスト

このようなチェックをするため、日常的には、型キャストにはstatic_castを用いるべきとされている。

なお、ここでエラーになるような互換性のない型キャストを「強引に」したい場合は、代わりにreinterpret_cast演算子を使う。

関連する用語
C++
reinterpret_cast

コメントなどを投稿するフォームは、日本語対応時のみ表示されます


KisoDic通信用語の基礎知識検索システム WDIC Explorer Version 7.04a (27-May-2022)
Search System : Copyright © Mirai corporation
Dictionary : Copyright © WDIC Creators club