小编Mat*_*tes的帖子

取消引用一个void指针数组

假设我有一个指向不同类型对象的void指针数组,我想通过一个函数传递它们并将它们转换为各自类型的指针,我将如何进行此操作?我已经尝试过这个当前代码,但是我收到错误:

'void*'不是指向对象的指针类型

objectA myObjectA;
objectB myObjectB;
objectC myObjectC;
objectD myObjectD;

void *data[4];

data[0] = static_cast<void *>( &myObjectA );
data[1] = static_cast<void *>( &myObjectB );
data[2] = static_cast<void *>( &myObjectC );
data[3] = static_cast<void *>( &myObjectD );

void dereference( void *data )
{
    objectA *objA_ptr = static_cast<objectA *>( data[0] );
    objectB *objB_ptr = static_cast<objectB *>( data[1] );
    objectC *objC_ptr = static_cast<objectC *>( data[2] );
    objectD *objD_ptr = static_cast<objectD *>( data[3] ); 
}
Run Code Online (Sandbox Code Playgroud)

有谁知道实现这个的正确方法?

编辑:对于上下文,我正在使用opencv并尝试使用轨迹栏创建一个简单的gui界面.Opencv允许将userdata输入到TrackbarCallback中,当移动滑块时调用它,但只能以void指针的形式调用.

 int createTrackbar( const string& trackbarname, const string& …
Run Code Online (Sandbox Code Playgroud)

c++ pointers

2
推荐指数
1
解决办法
1043
查看次数

标签 统计

c++ ×1

pointers ×1