関数スタイルのキャストは、C++の古いスタイルのキャストであり、以下のように使用します:
type(destination_type)(expression)
ここで、type
はキャスト後の型を表し、destination_type
は変換先の型を指定します。そして、expression
は変換したい値や変数を指定します。
関数スタイルのキャストは、以下のようなシナリオで使用されます:
- 型の変換: キャスト演算子を使用して、ある型を別の型に変換することができます。たとえば、整数値を浮動小数点数に変換する場合などです。
int num = 10;
float result = float(num);
- 明示的な変換: 特定の型への明示的な変換が必要な場合に使用されます。たとえば、ポインタを整数に変換する場合などです。
int* ptr = new int(5);
int value = int(ptr);
- ユーザー定義型の変換: クラスや構造体などのユーザー定義型に対しても関数スタイルのキャストを使用することができます。
class MyClass {
public:
explicit MyClass(int value) : data(value) {}
int getData() { return data; }
private:
int data;
};
int main() {
MyClass obj = MyClass(10);
int num = int(obj);
return 0;
}
関数スタイルのキャストは非推奨とされていますが、一部の既存のコードベースではまだ使用されている場合があります。新しいコードを書く場合は、C++11以降で導入された型変換演算子(static_cast
、dynamic_cast
など)を使用することをおすすめします。