C キャスト 新しいページはコチラ
提供: yonewiki
(→キャスト) |
(→キャスト) |
||
29行: | 29行: | ||
*変換 | *変換 | ||
− | + | (int)uintLength | |
if文で使う前に前もってint型の変数に入れているとしたら変換だということが分かりやすいでしょうか? | if文で使う前に前もってint型の変数に入れているとしたら変換だということが分かりやすいでしょうか? | ||
− | + | int intLength = (int)uintLength; | |
43行: | 43行: | ||
− | unsigned int* puintLength; | + | unsigned int* puintLength; |
− | puintLength = &uintLength; | + | puintLength = &uintLength; |
とされたものを | とされたものを | ||
50行: | 50行: | ||
*変更 | *変更 | ||
− | + | pintLength = (int*)puintLength; | |
そしてconst付きのint ポインタ変数にnLimitのアドレスを紐づけて、pconstnLimitからは中身を変更できないようにした場合 | そしてconst付きのint ポインタ変数にnLimitのアドレスを紐づけて、pconstnLimitからは中身を変更できないようにした場合 | ||
− | const int* pconstnLimit; | + | const int* pconstnLimit; |
− | int* pnLimit; | + | int* pnLimit; |
− | pconstnLimit = &nLimit; | + | pconstnLimit = &nLimit; |
*const外し | *const外し | ||
− | + | pnLimit = (int*)pconstnLimit; | |
73行: | 73行: | ||
*const_cast const外し | *const_cast const外し | ||
*dynamic_cast | *dynamic_cast | ||
+ | |||
実際に新しさを感じるのはクラスとの関係が深いdynamic_castだけです。上の3つのキャストは先の説明にもあげたCからあったキャストを明示することができるようになって、このキーワードを使って明示的なcastをしようというものです。上記のキーワードを使わないとcastさせないというパターンも存在します。具体的には以下のようになります。 | 実際に新しさを感じるのはクラスとの関係が深いdynamic_castだけです。上の3つのキャストは先の説明にもあげたCからあったキャストを明示することができるようになって、このキーワードを使って明示的なcastをしようというものです。上記のキーワードを使わないとcastさせないというパターンも存在します。具体的には以下のようになります。 |