「型変換」の版間の差分

削除された内容 追加された内容
編集の要約なし
→‎機能による分類: クロスキャスト
41行目:
 
[[C++]]においてはダウンキャストのために<tt>dynamic_cast</tt>という特別な構文が用意されている。この構文では、変換が失敗すると結果として[[ヌル (コンピュータ)|NULL]]</tt>が返る。
====クロスキャスト====
あるクラス<tt>Derived</tt>が、二つの基底クラス<tt>Base1</tt>と<tt>Base2</tt>を多重継承しているとする。このとき、例えば<tt>Base1</tt>から<tt>Base2</tt>のように基底クラスどうしの間で型変換することをクロスキャストという。変換する対象が<tt>Derived</tt>のインスタンスであればキャストは成功するが、それは実行時にならないとわからないので、ダウンキャストと同様に安全な型変換ではない。
 
C++ではダウンキャストと同じ構文<tt>dynamic_cast</tt>でクロスキャストが行える。
====静的キャスト====
整数同士の型変換や整数と浮動小数点数の間の型変換などの、ごく一般的な型変換。