static cast

提供: C++入門
2014年1月2日 (木) 23:06時点におけるDaemon (トーク | 投稿記録)による版

(差分) ←前の版 | 最新版 (差分) | 次の版→ (差分)
移動: 案内検索
スポンサーリンク

C++のキャストで使われるstatic_cast(静的なキャスト)は、一般的なキャストを行います。intからlong、intからdouble、列挙型からintなどの型変換です。 int*からchar*などのポインタ型の変換は行えません。ポインタ同士のキャストには、reinterpret_castを使用します。

読み方

static_cast
こんすと きゃすと

概要

C++のstatic_castは、静的な型の式を別の静的な型のオブジェクトの値に変更します。 式vを型Tに変換します。

static_cast<T><v>;
int	i	= 0;
double	d	= 1.2;
i	= static_cast<int>(d);

コンパイル時に評価され、キャストできない場合は、コンパイルエラーになります。

static_castは、char*からconst char*に変換できます。しかし、const char * から char* に変換できません。その場合は、const_castを使用してください。

static_castの使用例

ソースコード static_cast.cc

#include <iostream>
#include <cstdlib>
using namespace std;
 
int
main (int argc, char *argv[])
{
 
        int     i = 100;
 
        long    l = static_cast <long> (i);
 
        exit (EXIT_SUCCESS);
}

コンパイル

g++  static_cast.cc -o static_cast

実行例

特に出力はありません。

% ./static_cast

関連項目





スポンサーリンク