MFC在一个类里定义了静态数组,在视图窗口CXXView类中改变了值,但是紧接着引用的时候,值却不是小弟我想要的
MFC在一个类里定义了静态数组,在视图窗口CXXView类中改变了值,但是紧接着引用的时候,值却不是我想要的
代码如下
Class CMerith
{
public:
static CCoordinate whitecoor[5];
.........
}
在CXXView类中
int k=0;
for(int i=0;i<5;i++)
{
for(int j=0;j<5;j++)
{
if(::AfxGetApp()->isornochess[i][j]==WHITECHESS) //isornochess这个数组是我自己定义的没问题
{
CMerith::whitecoor[k].m_x=i;
CMerith::whitecoor[k].m_y=j;
k++;
}
}
}这是对这个数组的值进行了相应的改变,经过验证是三个值CMerith::whitecoor[0]={1,4},CMerith::whitecoor[1]={2,4},CMerith::whitecoor[2]={3,4},但是当我紧接着这个循环后,引用的时候我发现,这个静态数组中所有的值,都是{3,4},不知道,怎么回事,希望大家能为小弟解决烦恼
------解决方案--------------------
LZ可不可以把引用whitedoor数组的那段代码也贴出来? 我觉得你提供的代码写法没有问题, 问题可能出在3处:
1. 引用数组的操作方法有误?
2. CCoordinate类的数据成员是不是也弄成静态的了? m_x, m_y是否静态成员?
3. 你在其它代码中, 尤其是新开的线程函数中意外修改了whitedoor的值?
代码如下
Class CMerith
{
public:
static CCoordinate whitecoor[5];
.........
}
在CXXView类中
int k=0;
for(int i=0;i<5;i++)
{
for(int j=0;j<5;j++)
{
if(::AfxGetApp()->isornochess[i][j]==WHITECHESS) //isornochess这个数组是我自己定义的没问题
{
CMerith::whitecoor[k].m_x=i;
CMerith::whitecoor[k].m_y=j;
k++;
}
}
}这是对这个数组的值进行了相应的改变,经过验证是三个值CMerith::whitecoor[0]={1,4},CMerith::whitecoor[1]={2,4},CMerith::whitecoor[2]={3,4},但是当我紧接着这个循环后,引用的时候我发现,这个静态数组中所有的值,都是{3,4},不知道,怎么回事,希望大家能为小弟解决烦恼
------解决方案--------------------
LZ可不可以把引用whitedoor数组的那段代码也贴出来? 我觉得你提供的代码写法没有问题, 问题可能出在3处:
1. 引用数组的操作方法有误?
2. CCoordinate类的数据成员是不是也弄成静态的了? m_x, m_y是否静态成员?
3. 你在其它代码中, 尤其是新开的线程函数中意外修改了whitedoor的值?