通过类构造函数创建线程

时间:2017-05-02 14:31:00

标签: c++ multithreading class constructor pthreads

是否可以使用指向类构造函数的函数指针创建一个线程?

如果可以的话,什么时候会调用类析构函数?

我已经提出了我正在寻找的这个例子:

class ClassA
{
public:
    ClassA(void* argPtr)
    { ... }
};

int main(void)
{
    pthread_t thread;
    pthread_create(&thread, NULL, &ClassA(), NULL);
    return 0;
}

1 个答案:

答案 0 :(得分:3)

构造函数被归类为“特殊成员函数”,并且不可能获得指向构造函数的指针,因为它没有名称(请注意,您使用类名而不是构造函数名称来调用它) ):

  

12.1构造函数[class.ctor]

     

1   构造函数没有名称。

     

...

     

2   构造函数用于初始化其类类型的对象。因为构造函数没有名称,所以在名称查找期间永远找不到它们;

pthread_create也指向常规函数,而不是成员函数。