首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何获取void*指针的typeid?

获取void指针的typeid是在C++中通过RTTI(Run-Time Type Information)来实现的。RTTI是C++的一种特性,允许在运行时获取对象的类型信息。要获取void指针的typeid,需要先将其转换为实际的对象类型,然后使用typeid操作符来获取类型信息。

以下是一个示例代码:

代码语言:cpp
复制
#include<iostream>
#include <typeinfo>

class Base {
public:
    virtual ~Base() {}
};

class Derived : public Base {};

int main() {
    Base* b = new Derived();
    void* p = dynamic_cast<void*>(b);
    const std::type_info& t = typeid(*static_cast<Base*>(p));
    std::cout << t.name()<< std::endl;
    delete b;
    return 0;
}

在这个示例中,我们首先创建了一个Base类的派生类Derived,并且在Base类中添加了一个虚拟析构函数,以便在运行时正确地进行类型转换。然后我们创建了一个Base类的指针,并将其指向一个Derived类的实例。接着我们将该指针转换为void*类型,并使用typeid操作符获取该指针所指向对象的类型信息。最后我们将类型信息打印出来,并释放内存。

需要注意的是,在使用typeid操作符之前,需要将void指针转换回原始的对象类型,否则会导致编译错误。在这个示例中,我们使用了static_cast来将void指针转换回Base*类型,然后使用typeid操作符获取类型信息。

总之,要获取void*指针的typeid,需要先将其转换为实际的对象类型,然后使用typeid操作符来获取类型信息。在实际应用中,可以根据获取到的类型信息来实现不同的逻辑处理。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

6分49秒

08-如何获取插件的帮助信息

1分40秒

如何获取苹果设备的UDID(iPhoneiPad UDID查询方法)

5分12秒

python开发视频课程5.12如何获取指定元素出现的次数

1分40秒

如何获取苹果设备的UDID(iPhone/iPad UDID查询方法)

10分38秒

06_尚硅谷_谷粒音乐_如何获取三个视口的宽度.wmv

7分21秒

6-云托管下用户信息获取及token应用

1分12秒

Elastic AI助手:进程资源指标分析

6分9秒

Elastic 5分钟教程:使用EQL获取威胁情报并搜索攻击行为

56分38秒

Techo Youth高校公开课:技术新青年应该知道的N件事

3分6秒

中国数据库前世今生——2024数据库行业未来发展趋势

2.9K
2分12秒

数据库行业未来发展趋势——1980年代的起步

2.1K
2分0秒

中国数据库前世今生——1990年代的多家竞争

1.4K
领券