class CMyDlg : public CDialog
{
public:
    int  m_nTestA, m_nTest;
    afx_msg void OnBnClickedButton();
    virtual BOOL OnInitDialog();
}BOOL CMyDlg::OnInitDialog()
{
    CDialog::OnInitDialog();    if (m_nTestA == 1)
         m_nTest = 1;    return TRUE; 
}void CMyDlg::OnBnClickedButton()
{
    CString str;
    str.Format(L"m_nTest = %d, m_nTestA = %d", m_nTest, m_nTestA);
   
    MessageBox(str);   
   
    // m_nTest, m_nTestA 会是多少? 我不理解,请指导.}

解决方案 »

  1.   


        // m_nTest, m_nTestA 会是多少? 我不理解,请指导.} m_nTestA 没初始化,是一个不固定的值,系统随机分配的内存块的值。
    估计
    m_nTest, m_nTestA 都不固定
      

  2.   

    m_nTestA, m_nTest的初始值是多少?看看构造函数里有没有设置初始值。
    m_nTest, m_nTestA 的最终值与它们的初值有关,先找到它们的初值,如果m_nTestA 当前值为1,m_nTest 就会被赋值为1,点击按钮后弹出的消息框中m_nTestA, m_nTest的值都为1,如果m_nTestA 当前值不为1,m_nTest的值不变,为当前值。
      

  3.   

    m_nTestA, m_nTest结果
    如果是在Debug版,应该是什么 0xCCCCCCCC如果是在Release版,可能是一个随机机因为 A 没有初值,不同的编译方法产生不同的初值
      

  4.   

    没有构造函数,所以这两个值初始都是随机的。如果m_nTestA刚好随机等于1了,那么m_nTest也是1,如果m_nTestA初始不等于1,那么就是两个随机数,无从预测。
      

  5.   

       类的成员变量,如果未初始化,它是一个随机值.(大家都知道)
      但是实际情况是: 类的成员变量m_Test, 它是一个固定值.(至少100次测)
      如何理解这种情况?