在类中定义了一个静态的线程函数,然后在该线程函数中访问类的静态变量但为何每次只读取到该静态变量的初始值(我确认在其他成员函数中修改过此值)//A.h
class A
{
public:
static DWORD WINAPI thread(LPVOID l);
void changeValue();
private:
static int a;
};//A.cpp
int a = 0;
DWORD WINAPI A::thread(LPVOID l)
{
cout<<a<<endl;
return 1;
}void A::changeValue()
{
a = 10;
return ;
}
class A
{
public:
static DWORD WINAPI thread(LPVOID l);
void changeValue();
private:
static int a;
};//A.cpp
int a = 0;
DWORD WINAPI A::thread(LPVOID l)
{
cout<<a<<endl;
return 1;
}void A::changeValue()
{
a = 10;
return ;
}
int a = 0;
这里你又定义了一个全局变量a.每次changeValue修改的都是这个全局变量.不是类成员.类中的静态成员初始化的时候要加类限定符的.向楼上说的那样就OK了