ホームページ  >  に質問  >  本文

C++ - static_cast についての質問

static_cast 演算子は、expression を type-id 型に変換しますが、変換の安全性を保証する実行時の型チェックはありません。
① クラス階層内の基本クラス (親クラス) と派生クラス (サブクラス) の間でポインターまたは参照を変換するために使用されます。
アップストリーム変換 (派生クラスのポインターまたは参照を基底クラス表現に変換する) を実行しても安全です;
ダウンコンバージョンを実行する場合 (ポインターまたは参照を基底クラスから派生クラスに変換する)表現)、動的型チェックがないため安全ではありません。

出典: http://baike.baidu.com/link?u...

お聞きしたいのですが、太字の部分はどういう意味ですか?安全ではない とはどういう意味ですか?

阿神阿神2716日前830

全員に返信(1)返信します

  • 仅有的幸福

    仅有的幸福2017-06-05 11:13:51

    たとえば、同じ親クラスの異なるサブクラスのオブジェクトを相互に変換する親クラスA,派生出两个子类BC,有一个A类指针或引用a指向了一个B类对象b,此时用static_cast进行下行转换,可以将其转换成C类的对象(指针或引用),此时就会出现不安全,因为C类的一些成员函数/变量对B类的对象不适用。
    简单来说,就是可以利用static_castがあるため、型エラーが発生します。
    例:

    リーリー

    返事
    0
  • キャンセル返事