通过类构造函数创建线程

Create thread via class constructor

本文关键字:创建 线程 构造函数      更新时间:2023-10-16

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

如果可能的话,何时将destructor打电话给?

我已经为我想要的示例做了这个示例:

class ClassA
{
public:
    ClassA(void* argPtr)
    { ... }
};
int main(void)
{
    pthread_t thread;
    pthread_create(&thread, NULL, &ClassA(), NULL);
    return 0;
}

构造函数被归类为"特殊成员函数",由于它没有名称,因此无法获取构造函数的指针调用它的构造函数函数名称(:

12.1构造函数[class.ctor]

1 构造函数没有名称。

...

2 构造函数用于初始化其类型的对象。因为构造函数没有名称,因此在名称查找时从未找到它们;

pthread_create也将指针指向常规功能,而不是成员函数。