在下列对话框构造函数中,“: CDialog(CAboutDlg::IDD)”是什么意思?CDialog(CAboutDlg::IDD)前面的“:”代表什么意思?CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
{
//{{AFX_DATA_INIT(CAboutDlg)
//}}AFX_DATA_INIT
}

解决方案 »

  1.   

    在CAboutDlg()构造函数后面,冒号表示后面要对类的数据成员的构造函数进行调用。因为类的数据成员CDialog在CAboutDlg类中,不能写成带有参数的方式。
      

  2.   

    晕,说错了!应该是基类初始化由CDialog(CAboutDlg::IDD)去完成,派生类的构造总是由基类的初始化开始的。
      

  3.   

    你完全可以写成这样:
    CAboutDlg::CAboutDlg()
    {
        CDialog(CAboutDlg::IDD);
       //{{AFX_DATA_INIT(CAboutDlg)
    //}}AFX_DATA_INIT
    }
    可以看出,CAboutDLg的构造函数就是调用它的基类的一种构造函数:CDialog(UINT nIDTemplate, CWnd* pParentWnd = NULL).
      

  4.   

    谢谢,我已经懂了很多。还有一点不明白,请指教,谢谢:在CDialog(CAboutDlg::IDD)中,“CAboutDlg::IDD”代表什么?“::IDD”代表什么?“::”代表什么?
      

  5.   

    CAboutDlg::IDD是在CAboutDlg中定义的一个枚举类型,形式如下
                              enum { IDD = IDD_ABOUTBOX };
    ::是域操作符,表示IDD是CAboutDlg的成员变量