大家好,我是刚接触VC的新手,想请教各位关于在构造函数里面对变量初始化的问题。一个基于对话框的MFC程序,在头文件里面申明了一些变量,然后将这些变量在构造函数里面进行初始化,对变量的数量有限制吗?为什么在变量变多的情况下就引起运行时对话框出不来了。

解决方案 »

  1.   

    应该是有限制的!
    这就是栈和什么什么的区别!栈中大约是几M(1M?)的空间。
    你完全可以试验,定义char a[1024*1024];可能根本就不行,
    来几个,或者多定义几个这样的东西,是不行的。解决的办法是用new.
    好久没搞这个了,连术语都忘了,贻笑大方了。
      

  2.   

    头文件代码:
    class CTinInspectionDlg : public CDialog
    {
    // Construction
    public:
    CTinInspectionDlg(CWnd* pParent = NULL); // standard constructor
    //~CTinInspectionDlg();
    int m_Gray;
    int m_Area;

    在构造函数中
    CTinInspectionDlg::CTinInspectionDlg(CWnd* pParent /*=NULL*/)
    : CDialog(CTinInspectionDlg::IDD, pParent)
    {
    //{{AFX_DATA_INIT(CTinInspectionDlg)
    //}}AFX_DATA_INIT
    // Note that LoadIcon does not require a subsequent DestroyIcon in Win32
    m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);        m_Gray            = 0;
    m_Area         = 0;
    }
    当只有m_Gray时程序没有问题,但是当加上m_Area后就运行不行了,而且在构造函数中注释掉m_Area=0,程序又可以了。PS:程序里面还没有添加其他的函数。