是否可以使用指向类构造函数的函数指针创建一个线程?
如果可以的话,什么时候会调用类析构函数?
我已经提出了我正在寻找的这个例子:
class ClassA
{
public:
ClassA(void* argPtr)
{ ... }
};
int main(void)
{
pthread_t thread;
pthread_create(&thread, NULL, &ClassA(), NULL);
return 0;
}
答案 0 :(得分:3)
构造函数被归类为“特殊成员函数”,并且不可能获得指向构造函数的指针,因为它没有名称(请注意,您使用类名而不是构造函数名称来调用它) ):
12.1构造函数[class.ctor]
1 构造函数没有名称。
...
2 构造函数用于初始化其类类型的对象。因为构造函数没有名称,所以在名称查找期间永远找不到它们;
pthread_create
也指向常规函数,而不是成员函数。