1. ホーム
  2. c++

[解決済み] C++における静的型チェックと動的型チェック

2022-01-28 04:29:34

質問

静的型検査と動的型検査とは何か、その違いについて知りたい。

どのように解決するのですか?

静的型チェックとは、コンパイル時に型チェックを行うことです。その場合、実行時に型情報は使用されません。

動的な型チェックは、実行時に型情報を使用する場合に行われます。C++では、RTTI(runtime type information)と呼ばれる機構を使って実装しています。RTTIが使用される最も一般的な例は、多相型のダウンキャストを可能にするdynamic_cast演算子です。

// assuming that Circle derives from Shape...
Shape *shape = new Circle(50);
Circle *circle = dynamic_cast<Circle*> shape;

さらに、typeid演算子を使って、オブジェクトの実行時の型について調べることができます。例えば、例の図形が円なのか四角形なのかを調べるのに使うことができる。以下は、いくつかの 詳細情報 .