首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

请问:在 C++ 类中,数组如何初始化?多谢

2012-01-18 
请教:在 C++ 类中,数组怎么初始化?谢谢!请教:一个这样的问题:a.hclass a{int FallRedAnimalCount1[12]flo

请教:在 C++ 类中,数组怎么初始化?谢谢!
请教:
一个这样的问题:
a.h

class a
{
  int FallRedAnimalCount1[12]; 
  float FallRedAnimalY[12]; 
}

a.cpp

a:A()
{
  int a = 0;
  for (i = 0; i < 12; i++)
  {
  FallRedAnimalCount1[i] = 0;
  }
  for (i = 0; i< 12; i++)
  {
  FallRedAnimalY[i] = 0.0f;
  }
}

是这样初始化的吗?

还有更好的方法吗?

memset(FallRedAnimalCount1, 0, sizeof(FallRedAnimalCount1)); 
memset(FallRedAnimalY, 0.0f, sizeof(FallRedAnimalY));
这样可以吗?

谢谢!


[解决办法]
memset(FallRedAnimalCount1, 0, sizeof(int)*12);
memset(FallRedAnimalY, 0.0f, sizeof(float)*12); 
这样初始化效率高
[解决办法]
a myA;
ZeroMemory(myA, sizeof(myA));
不过其实ZeroMemory也是调用的memset
[解决办法]
//我要把 12 myactive全部初始化为 true 

false == 0, 非0 的就是true

memset(myactive, true, sizeof(myactive));
memset(myactive, 1, sizeof(myactive));
这两个效果一样
[解决办法]
楼上正解
false等效于0
true等效于1
memset(bTest,true,sizeof(bool)*10);
memset(bTest,1,sizeof(bool)*10);
均可
可以用下面代码测试
int i;
for(i=0;i<10;i++)
{
if (bTest[i]!=true)
{
MessageBox("bTest!=true","消息",MB_OK);
}
}
也可以用下面代码察看
sprintf(psTemp,"%d",true);
MessageBox(NULL,(LPCTSTR)psTemp,"消息",MB_OK);
sprintf(psTemp,"%d",false);
MessageBox(NULL,(LPCTSTR)psTemp,"消息",MB_OK);
[解决办法]
同意楼上的
memset(bTest,true,sizeof(bool)*10); 
memset(bTest,1,sizeof(bool)*10); 
两者均可

热点排行