为何我的变量会突变 在CCompute构造函数中对成员变量进行初始化 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 哦,对不起,我的代码第一行是这样:CCompute com(64);我的重载的CCompute构造函数是这样的CCompute::CCompute( int b){ b=b0; m_Grid=new CGrid[b]; }CGrid是另外一个类,跳变的正是b,我的b是在构造函数里初始化里的呀。 或者是不是说我应该这样用com.func();...... CCompute::CCompute( int b){ b=b0; ???b是传进来的参数,怎么b=b0? CCompute::CCompute( int b){ b=b0; m_Grid=new CGrid[b]; }b0是什么,为什么"b=b0; ",可能是 "b0 = b;"吧?,问题可能在此! 哦,是CCompute::CCompute( int b0)我抄错了{ b=b0; m_Grid=new CGrid[b]; }应该不是这的问题。 下面是主程序代码以及出错的函数代码:UINT ThreadFunc(LPVOID pParam){ CCompute com(64); CCompute* pcom=&com; pcom->flagei=1; CParticlesI* pari3=NULL;//CParticlesI是另外一个类 pcom->Initial(0.21,6,6, 0.00000001, 0.2,0.00000001, 0.2,0.0,0, 1.0e-11,1000,3.3e19,100,-100,0.0);//这里初始化 for (int l=0;l<pcom->m_NP0;l++) pcom->AddParticlesI(6.68e-23,4.8e-7); pcom->m_NPI=pcom->GetParticlesICount(); //进入大循环 while(a<1000) { pcom->InitV(2.0e4,5.6e7,0.0); pcom->flagei=1; for(int a=0;a<pcom->m_NPI;a++) { pari3=pcom->GetParticlesI(a); pari3->func(); } pari3=NULL; pcom->m_NPI=pcom->GetParticlesICount(); //计算电荷密度 pcom->Calcucharge(); pcom->Force(); pcom->Accelp(); pcom->Movep(); a=a+1; }}void CCompute::Calcucharge()//计算电荷密度{ CParticlesE* ppar=NULL; CParticlesI* pparI=NULL; CParticlesEe* ppare=NULL; for(int ir=0;ir<b;ir++)//程序出错后调试停在这,b跳变 { m_Grid[ir].m_rhog=0.0; }.........} 贪食蛇的一个问题 能开发出金山词霸界面和快播界面,现在能找到工作吗?? 模拟鼠标拖动的问题 如何让按钮连续触发事件 vc+sql做网络版软件可以吗? COM使用,资料太少了 大于256色的位图如何显示 用struct和typedef struct 定义一个结构体有什么区别?为什么会有两种方式呢? 精华区和FAQ有什么区别? 如何捕获任务栏的鼠标点击消息? 补分。 谁能帮我看一下这道题,不是很难的
我的重载的CCompute构造函数是这样的
CCompute::CCompute( int b)
{
b=b0;
m_Grid=new CGrid[b]; }
CGrid是另外一个类,跳变的正是b,我的b是在构造函数里初始化里的呀。
com.func();
......
{
b=b0; ???
b是传进来的参数,怎么b=b0?
{
b=b0;
m_Grid=new CGrid[b];
}b0是什么,为什么"b=b0; ",可能是 "b0 = b;"吧?,问题可能在此!
{
b=b0;
m_Grid=new CGrid[b];
}
应该不是这的问题。
UINT ThreadFunc(LPVOID pParam)
{
CCompute com(64);
CCompute* pcom=&com;
pcom->flagei=1;
CParticlesI* pari3=NULL;//CParticlesI是另外一个类
pcom->Initial(0.21,6,6, 0.00000001, 0.2,0.00000001,
0.2,0.0,0, 1.0e-11,1000,3.3e19,100,-100,0.0);//这里初始化
for (int l=0;l<pcom->m_NP0;l++)
pcom->AddParticlesI(6.68e-23,4.8e-7);
pcom->m_NPI=pcom->GetParticlesICount();
//进入大循环
while(a<1000)
{
pcom->InitV(2.0e4,5.6e7,0.0);
pcom->flagei=1;
for(int a=0;a<pcom->m_NPI;a++)
{
pari3=pcom->GetParticlesI(a);
pari3->func();
}
pari3=NULL;
pcom->m_NPI=pcom->GetParticlesICount();
//计算电荷密度
pcom->Calcucharge();
pcom->Force();
pcom->Accelp();
pcom->Movep();
a=a+1;
}
}
void CCompute::Calcucharge()//计算电荷密度
{
CParticlesE* ppar=NULL;
CParticlesI* pparI=NULL;
CParticlesEe* ppare=NULL;
for(int ir=0;ir<b;ir++)//程序出错后调试停在这,b跳变
{
m_Grid[ir].m_rhog=0.0;
}
.........
}