说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

奇怪,直接继承CDialog类竟然用不了它的默认构造函数(我是菜鸟,帮帮我)

编辑:说三道四文库 发布时间:2018-07-18 04:43
HTML文档下载 WORD文档下载 PDF文档下载
如果这样调用
CDialog Crab(IDD_DIALOG1,this);
Crab.DoModal();
就可以正确的调用;
可是如果我继承了一个CMyDialog类后:
//-----Start Define MyDialog------------
class CMyDialog:public CDialog
{
protected:
afx_msg void OnMyOK();
DECLARE_MESSAGE_MAP()
};

BEGIN_MESSAGE_MAP(CMyDialog,CDialog)
ON_BN_CLICKED(ID_MY_OK,OnMyOK)
END_MESSAGE_MAP()

void CMyDialog::OnMyOK()
{
OnOK();
}
//-----End Define MyDialog--------------
再调用:
//-----Start Use MyDialog------------
CMyDialog Crab(IDD_DIALOG1,this);
Crab.DoModal();
//-----End Use MyDialog--------------

出现调试信息:
--------------------Configuration: minMFC - Win32 Debug--------------------
Compiling...
minMFC.cpp
g:\我的代码\vc\纯手工打制的mfc程序\minmfc.cpp(62) : error C2660: 'CMyDialog::CMyDialog' : function does not take 2 parameters
Error executing cl.exe.

minMFC.exe - 1 error(s), 0 warning(s)

CMyDialog不是直接从CDialog继承的吗
那么原来的构造函数不是可以直接继承下来了吗
你是用类向导来继承的吗?
继承一个类,子类在执行自己的构造函数的时候,一般会自动调用父类的构造函数。其它情况下,没有必要调用父类的构造函数吧?
没有共有的构造函数,写一个就可以了

class CMyDialog : public CDialog
{
    CMyDialog(UINT ID, CWnd *pParent);
to lightwell(任何事物都是一分为二的):
没有自己写的,刚开始学,觉得直接写的收获大一些。。。

to mingbao(★情已逝★):
能不能说清楚一些,我的为什么会出错呢?
你手工添加的类吧
用classwizard添加
搞定了
呵呵
我觉得刚开始学的时候用wizard的话学不到多少东西,过于自动化了
主要是在继承性上我的理解还不行
现在搞定了
谢谢各位

//-----Start Define MyDialog------------
class CMyDialog:public CDialog
{
public:
CMyDialog(UINT ID, CWnd *pParent);
protected:
afx_msg void OnMyOK();
DECLARE_MESSAGE_MAP()
};

BEGIN_MESSAGE_MAP(CMyDialog,CDialog)
ON_BN_CLICKED(ID_MY_OK,OnMyOK)
END_MESSAGE_MAP()

CMyDialog::CMyDialog(UINT ID, CWnd *pParent):CDialog(ID,pParent)
{
}

void CMyDialog::OnMyOK()
{
OnOK();
}
//-----End Define MyDialog--------------


//-----Start Use MyDialog------------
CMyDialog Crab(IDD_DIALOG1,this);
Crab.DoModal();
//-----End Use MyDialog--------------
CMyDialog缺少构造函数将调用缺省构造函数CMyDilog::CMyDialog:CDialog(){}而不是
CMyDilog::CMyDialog:CDialog(UINT nIDTemplate,CWnd* pParentWnd){}
看了后对我启发很大
同意 luogucai(萝卜) 
study!
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘