【发布时间】:2012-06-17 03:11:51
【问题描述】:
我正在尝试将 void 指针转换为回调函数中的类数组,该回调函数仅支持将 void 指针作为将参数传递给回调的一种方式。
class person
{
std::string name, age;
};
void callback (void *val)
{
for (int i = 0; i < 9; i++)
{
std::cout << (person [])val[i].name;
}
}
int main()
{
person p[10];
callback((void*)p);
}
我的目标是能够将 person 类的数组传递给回调,然后打印出他们的姓名和年龄等数据。但是,编译器不喜欢我正在做的事情并抱怨error: request for member 'name' in 'val', which is of non-class type 'void*' 我该怎么做呢?
【问题讨论】:
-
另一种方法是将指针传递给包装对象数组的类。您可以在包装器中有一个方法来执行此打印内容。从回调中,您可以调用包装器的成员函数。
标签: c++ class pointers callback