在CCompute构造函数中对成员变量进行初始化

解决方案 »

  1.   

    哦,对不起,我的代码第一行是这样:CCompute com(64);
    我的重载的CCompute构造函数是这样的
    CCompute::CCompute( int b)
    {
    b=b0;
    m_Grid=new CGrid[b]; }
    CGrid是另外一个类,跳变的正是b,我的b是在构造函数里初始化里的呀。
      

  2.   

    或者是不是说我应该这样用
    com.func();
    ......
      

  3.   

    CCompute::CCompute( int b)

    b=b0; ???
    b是传进来的参数,怎么b=b0?
      

  4.   

    CCompute::CCompute( int b)

    b=b0; 
    m_Grid=new CGrid[b]; 
    }b0是什么,为什么"b=b0; ",可能是 "b0 = b;"吧?,问题可能在此!
      

  5.   

    哦,是CCompute::CCompute( int b0)我抄错了

    b=b0; 
    m_Grid=new CGrid[b]; 
    }
    应该不是这的问题。
      

  6.   

    下面是主程序代码以及出错的函数代码:
    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;
    }
    .........
    }