class A {
public:
A();
private:
pthread_mutex_t mu;
};
A::A()
{
mu = PTHREAD_MUTEX_INITIALIZER; //cannot compile
}
我不能在类成员函数中初始化
pthread_mutex_t
吗? 最佳答案
代替这个:
A::A()
{
mu = PTHREAD_MUTEX_INITIALIZER; //cannot compile
}
尝试这个:
A::A()
{
pthread_mutex_init( &(mu), NULL);
}
PTHREAD_MUTEX_INITIALIZER是一个宏,是{0,0,0,0,0,0 {0}}之类的C结构初始化程序,只能在定义时使用。