显示来自通用指针的值

Posted

技术标签:

【中文标题】显示来自通用指针的值【英文标题】:display the value from generic pointer 【发布时间】:2013-10-07 10:14:54 【问题描述】:

我有一个 void 指针,其中包含对象的地址,但我不知道该对象的类型。我的代码是这样的

VARIANT vtProp;

现在使用某种方法获取 vtProp 中的值。它已经成功地获得了一些价值。

现在我已经在 void 指针中赋值了

void *ptr = vtProp.pparray;

现在它正在获取一些对象数组。我需要从 void 指针中获取对象,但是当我使用

显示 void 指针中的值时
wcout << ptr << endl;

它只显示空指针中包含的地址。

您能否建议我如何打印对象名称。

【问题讨论】:

更具体地了解“对象”和“对象名称”的存储方式。 【参考方案1】:

这会打印一个地址:

void *ptr = vtProp.pparray;
wcout << ptr << endl;

因为应用了operator&lt;&lt; 的重载,它采用了void*。如果ptr 指向具有成员name 的对象,您应该这样做:

MyObject* ptr = reinterpret_cast<MyObject*>(vtProp.pparray);
wcout << ptr->name << endl;

【讨论】:

:感谢您的回复。但我不知道,哪些类型的对象正在重新运行。那么,我该如何输入 cast。 @user2499879:如果您不知道那里存储了什么,您想如何使用该内存块的内容?在这种情况下,指向该内存的指针将完全没有用。

以上是关于显示来自通用指针的值的主要内容,如果未能解决你的问题,请参考以下文章

用于删除 Map 中的指针值和指针向量的 C++ 通用代码

急!!!利用函数指针变量编写一个求定积分的通用函数,

如何使 ManyToMany 字段的值显示在 Django 通用 DeleteView 中

通用分页

通用分页

c ++通用指针?空指针?