【C++入門】明示的な型キャストの基本と使い方をわかりやすく解説
型キャストとは
型キャスト(type cast)は、特定の状況においてオブジェクトの型を明示的に変換するための仕組みです。C言語スタイルのキャストは、単項式として次の形式で記述します。
( type-name ) cast-expression
キャストが実行されると、コンパイラはそれ以降のキャスト式を、指定された型(type-name)として扱います。
キャストの基本的なルール
キャストは、任意のスカラー型(整数型・浮動小数点型・ポインタ型など)のオブジェクトを、別のスカラー型へ変換するために使用できます。
明示的な型キャストには、暗黙的な型変換の挙動を定めるのと同じ規則が適用されます。さらに、対象となる型の実際のサイズや内部表現の違いによっては、追加の制約が課される場合もある点に注意が必要です。
サンプルコード
以下は、float型の値をint型に明示的にキャストする例です。
#include <iostream>
using namespace std;
int main() {
float x = 3.1;
int i;
i = (int)x; // 明示的な型キャスト
cout << x << ", " << i << endl;
return 0;
}
実行結果
3.1, 3
この例では、float型の変数 x(値は3.1)をint型にキャストしています。その結果、小数点以下が切り捨てられ、変数 i には 3 が代入されます。元の x の値は変わらず 3.1 のまま出力されている点にも注目してください。
C++では4つのキャスト演算子が推奨される
現代のC++では、C言語スタイルのキャストよりも、目的が明確で安全性の高い4つのキャスト演算子を使うことが推奨されています。
- static_cast … 数値型同士の変換など、通常の暗黙変換が可能な変換を行う
- const_cast … const修飾やvolatile修飾を追加・除去する
- reinterpret_cast … 無関係なポインタ型間の変換など、低レベルな再解釈を行う
- dynamic_cast … 継承関係にあるクラス間の安全なダウンキャストを行う(実行時型情報を使用)
上記のサンプルは、C++スタイルでは static_cast<int>(x) と書けます。こちらの方が「何を意図したキャストか」が明確になり、誤った変換をコンパイル時に検出しやすくなるため、実務では積極的に活用しましょう。
-
C++の単項演算子とは?種類・使い方を実例付きで解説
単項演算子(unary operator)とは、1つのオペランド(被演算子)に対して作用し、新しい値を生成する演算子のことです。C++には以下のような単項演算子が用意されています。 C++の主な単項演算子一覧 演算子説明 間接参照演算子(*)ポインタ変数に作用し、そのポインタが指すアドレスにある値に相当するlvalueを返します。この操作はポインタの「デリファレンス(間接参照)」と呼ばれます。 アドレス取得演算子(&)オペランドのメモリアドレスを取得する単項演算子です。オペランドとしては、関数指定子、またはビットフィールドでなく、register記憶クラス指定子を付けずに宣言さ
-
Pythonの明示的な型キャスト(型変換)を徹底解説|int・float・strなど組み込み関数の使い方
はじめに:Pythonにおける型キャストとは?プログラミングにおいて、データ型を宣言して扱うことは日常的な操作ですが、異なるデータ型同士を相互に変換できることをご存じでしょうか?本記事では、Pythonに組み込まれた関数を使ってデータ型を変換する方法、いわゆる「型キャスト(Type Casting/型変換)」について解説します。型キャストには大きく分けて「暗黙的(Implicit)」と「明示的(Explicit)」の2種類があります。暗黙的な型変換はPythonが自動的に行うものである一方、明示的な型キャストは開発者が意図的に組み込み関数を呼び出して変換を行う方法です。この記事では、明示的な型