在 C 中查找对象的类型
可以使用dynamic_cast 确定对象的类型。此方法动态地将数据从一种指针或引用类型转换为另一种,并在运行时验证转换的有效性。
用法:
转换为指针类型:
TYPE* dynamic_cast<TYPE*>(object);
投射到参考类型:
TYPE& dynamic_cast<TYPE&>(object);
结果:
运行时类型信息 (RTTI)
Dynamic_cast 依赖于 RTTI,它仅可用于多态类(即具有至少一个虚拟方法的类)。实际上,这并不是一个重要的限制,因为大多数基类都有一个虚拟析构函数,用于在派生类中进行正确的清理。
示例:
这里是一个使用的示例Dynamic_cast 检查对象是否属于 B 类型:
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中文网其他相关文章!