C でのオブジェクトの型の検索
オブジェクトの型は、dynamic_cast を使用して決定できます。このメソッドは、あるポインターまたは参照型から別のポインターまたは参照型にデータを動的にキャストし、実行時にキャストの有効性を検証します。
使用法:
ポインター型にキャストするには:
TYPE* dynamic_cast<TYPE*>(object);
参照にキャストするにはtype:
TYPE& dynamic_cast<TYPE&>(object);
Result:
ランタイム タイプ情報 (RTTI)
Dynamic_cast は RTTI に依存します。多態性クラス (つまり、少なくとも 1 つの仮想メソッドを持つクラス) で使用できます。実際には、これは重大な制限ではありません。ほとんどの基本クラスには、派生クラスで適切にクリーンアップするための仮想デストラクターがあるからです。
例:
これは、使用例です。オブジェクトがタイプ B であるかどうかを確認する Dynamic_cast:
class A {}; class B : public A { public: void b_function() {} }; void func(A& obj) { B* b_ptr = dynamic_cast<B*>(&obj); if (b_ptr != nullptr) { b_ptr->b_function(); // Object is of type B } else { std::cout << "Object is not of type B" << std::endl; } }
以上がC で実行時にオブジェクトの型を決定するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。