我有两个类A和B.我要的是B级使用pthread.h改变A类的变量:C++,如何改变另一个类的变量与其他类的线程
class A
{
public:
double v;
}
class B
{
public:
void commencingExecution(A& a);
static void * setVHelper(void* context);
void setV(A& a);
}
void B::commencingExecution(A& a);
{
pthread_t set_v_thread;
int iret = pthread_create(&set_v_thread, NULL, B::setVHelper, this);
}
void * B::setVHelper(void* context)
{
while(1)
{
((B *)context)->setV();
}
}
void B::setV(A& a)
{
a.v = 1;
}
问题是,静态无效 setVHelper(void * context)*只能有一个参数....所以我怎样才能改变另一个类的变量?
如果setVHelper只能有一个类型为void *的参数,那么您可以创建一个包含指向类A和指向B类的指针并将其作为参数传递? 'struct {A * a_ptr; B * b_ptr} param_struct;' – mgarey