很菜的一个问题

zteclx 2009-02-09 02:42:27
刚接触VC++.
在一个mfc对话框dialog程序中,有以下语句:
CtestDlg::CtestDlg(Cwnd * pParent) : Cdialog(Ctest::IDD ,pParent)

第一个CtestDlg是类,CtestDlg(Cwnd * pParent)表示类的成员函数(构造函数)的定义
: Cdialog(Ctest::IDD ,pParent)是什么?表示CtestDlg派生自这个类吗?
(Ctest::IDD ,pParent)是什么意思?
Cwnd * pParent是成员函数的参数吗?
...全文
132 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
youhao1999 2009-02-10
  • 打赏
  • 举报
回复
: Cdialog(Ctest::IDD ,pParent)
是对对象成员的初始化
这在C++书讲构造函数的地方讲过,楼主先看C++书去吧
yc_8301 2009-02-10
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 zteclx 的回复:]
Cdialog(Ctest::IDD ,pParent) 是调用基类的构造函数.Ctest::IDD ,pParent是参数是什么意思?

[/Quote]
Ctest::IDD 对话框资源ID
pParent 自定义类传过来的参数,也就是说是 CtestDlg子类构造函数传过来的参数。。
jasonM2008 2009-02-10
  • 打赏
  • 举报
回复
Cdialog(Ctest::IDD ,pParent)是基类的构造函数,这个是构造函数的参数!
  • 打赏
  • 举报
回复
如果你细心的话,你会看到在其的.h文件里头,有这样一句话:
enum { IDD = IDD_XXX_DIALOG };

IDD就是窗口的资源ID。

: Cdialog(Ctest::IDD ,pParent) 

帽号后头的是类的基类的初始化列表,表示该类继承自这一个类,也可以是其自身数据成员的初始化列表

建议你看一些C++方面的书籍。
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 zteclx 的回复:]
Cdialog(Ctest::IDD ,pParent) 是调用基类的构造函数.Ctest::IDD ,pParent是参数是什么意思?
[/Quote]

父窗口
allenpettle 2009-02-09
  • 打赏
  • 举报
回复
CtestDlg继承于Cdialog
初始化时先构造Cdialog.
zteclx 2009-02-09
  • 打赏
  • 举报
回复
Cdialog(Ctest::IDD ,pParent) 是调用基类的构造函数.Ctest::IDD ,pParent是参数是什么意思?
lidongxy 2009-02-09
  • 打赏
  • 举报
回复
派生类定义对象的时候要调用构造函数,而构造函数的调用顺序是先调用基类的构造函数
Cdialog(Ctest::IDD ,pParent)
是执行基类的构造函数完成初始化,
冰霜icefrost 2009-02-09
  • 打赏
  • 举报
回复
推荐LZ看一下,Effective C++中第12条款, 尽量使用初始化而不要在构造函数里赋值
好像是这一个。
冰霜icefrost 2009-02-09
  • 打赏
  • 举报
回复
: Cdialog(Ctest::IDD ,pParent)
是执行基类的构造函数完成初始化,

16,550

社区成员

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

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

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