C++ キャストの探求

Module 06の主要な型変換テクニックをインタラクティブに学ぶ

Exercise 00: スカラ型の変換

文字列リテラルを各種基本データ型に変換する`static_cast`の動作をシミュレートします。特殊な値(nan, inf)や変換不能な場合の挙動も確認できます。

変換結果:

char:   -

int:     -

float:   -

double: -

Exercise 01: シリアライズ

ポインタのメモリアドレスを整数に変換し、元に戻すプロセスを可視化します。危険な`reinterpret_cast`が内部で何をしているのかを体感しましょう。

1. 元のポインタ

Data*

2. シリアライズ後

uintptr_t

3. デシリアライズ後

Data*

ボタンを押して開始してください

Exercise 02: 型の識別

`dynamic_cast`を使い、基底クラスのポインタが指す実際の型を特定します。ポインタと参照で失敗時の挙動が異なる(NULLを返すか、例外を投げるか)様子を比較します。

現在のオブジェクト: 未生成

ポインタで識別 (`identify(p)`)

参照で識別 (`identify(*p)`)