我在Doc.cpp中定义了一个全局变量,
CGraphPara *p_GraphPara;   
这是一个类的指针,在CMyView类中调用
CBrush brush(p_GraphPara->GetColor(m_bColor));
m_bColor是CMyView的成员变量,发现p_GraphPara没有使用它的构造函数进行初始化;起构造函数如下:
CGraphPara::CGraphPara()
{
n_ColorNumbAll=500;
n_LayerNumbAll=100;
m_ColorList=new long[n_ColorNumb];
m_LayerList=new LayerStruct[n_LayerNumb];
n_ColorNumb=4;
n_LayerNumb=1;    m_ColorList[0]=RGB(0,0,0);
m_ColorList[1]=RGB(255,0,0);
m_ColorList[2]=RGB(0,255,0);
m_ColorList[3]=RGB(0,0,255);
m_LayerList[0].b_Display=1;
strcpy(m_LayerList[0].m_Name,"Layer 0");
}
这应该怎么解决

解决方案 »

  1.   

    请把CMyView的构造函数好不好?
      

  2.   

    CGraphPara *p_GraphPara = new CGraphPara;这样就行了
      

  3.   

    CGraphPara *p_GraphPara;   
    只是这样定义一个CGraphPara 对象指针的话,不会调用构造函数的
    CGraphPara *p_GraphPara = new CGraphPara();
    就会调用构造函数
      

  4.   

    我也试过这样的方法,但是编译的时候,报错,提示没有合适的默认构造函数可用
    CGraphPara::CGraphPara()
    {
    n_ColorNumbAll=500;
    n_LayerNumbAll=100;
    m_ColorList=new long[n_ColorNumb];
    m_LayerList=new LayerStruct[n_LayerNumb];
    n_ColorNumb=4;
    n_LayerNumb=1;  m_ColorList[0]=RGB(0,0,0);
    m_ColorList[1]=RGB(255,0,0);
    m_ColorList[2]=RGB(0,255,0);
    m_ColorList[3]=RGB(0,0,255);
    m_LayerList[0].b_Display=1;
    strcpy(m_LayerList[0].m_Name,"Layer 0");
    }
    我的构造函数是这样写的,这要怎么解决