MFC中构造函数问题,帮我看一下?

jzp12 2007-05-02 07:31:50
//CSongDlg是派生自基类CDialog
有如下一段代码:
CSongDlg::CSongDlg(CWnd* pParent /*=NULL*/)
: CDialog(CSongDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CSongDlg)
m_songname = _T("");
//}}AFX_DATA_INIT
}

我对这里的CSongDlg::IDD不是太理解,这不是派生类的IDD吗,怎么会出来在基类构造函数的参数列表中呢?即然基类有两个参数,为什么派生类的参数表中只有一个参数?
急,希望得到解答,谢谢.
...全文
309 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
conquerq 2007-05-02
  • 打赏
  • 举报
回复
IDD只是一个整数,CDIALOG需要IDD来构造对话框
youngwolf 2007-05-02
  • 打赏
  • 举报
回复
一种构造函数调用另一种构造函数,构造函数有多个。
WingForce 2007-05-02
  • 打赏
  • 举报
回复
为什么不能出现?
它只是一个整数而已,事实上,
CDialog(
UINT nIDTemplate,
CWnd* pParentWnd = NULL
);
只是将这个整数存起来了而已:

CDialog::CDialog(UINT nIDTemplate, CWnd* pParentWnd)
{
AFX_ZERO_INIT_OBJECT(CWnd);

m_pParentWnd = pParentWnd;
m_lpszTemplateName = MAKEINTRESOURCE(nIDTemplate);
m_nIDHelp = nIDTemplate;

#ifdef _WIN32_WCE
CDialog::SHInitDialog();
#endif // _WIN32_WCE
}

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧