实例一:生成一个对话框程序,在加入一个对话框类,在加入的对话框中定义一个生成对话框的指针,并初始化。
m_sql = new CSqlDlg;错误:拷贝构造函数不存在。'operator =' function is unavailable(不知道我理解的对不对)实例二:生成一个对话框程序,在加入一个对话框类,并使两个类可以相互调用。在加入的对话框中定义一个生成对话框的指针,并初始化。成功没有错误。什么原因?
m_sql = new CSqlDlg;错误:拷贝构造函数不存在。'operator =' function is unavailable(不知道我理解的对不对)实例二:生成一个对话框程序,在加入一个对话框类,并使两个类可以相互调用。在加入的对话框中定义一个生成对话框的指针,并初始化。成功没有错误。什么原因?
==============
每一类的实例在产生时都要调用构造函数,而CDialog这个类没有默认构造函数,它的构造函数要求有参数,你上面没有给它参数,它当然报错。所谓默认构造函数就是没有参数的构造函数。
如果我在生成对话框dialog中显示:dialog1对话框,
根据你说的:其他窗口类(对话框类)的指针传进来而不是另外生成一个。
m_dialog1 = (CDialog1*)GetDlgItem(IDD_DIALOG1);
这样不行?
请问要如何得到传进来的指针。
大家不知道看了没有?
m_sql = new CSqlDlg ;
在第一中情况下报错了。
但是在第二中情况下却没有错。
难道说:在第二种情况下,CDialog有默认的构造函数了。还有:如果我在生成的对话框CDialog内直接定义一个CDialog1的实例,那就可以直接操作这个实例了。
我定义了一个CDialog1的指针,那我要如何去实例化这个类指针呢?
#define JADE_NEW_RETURN(POINTER,CONSTCLASS,EXCEPT) \
do{ try{ POINTER = new CONSTCLASS; } \
catch(std::bad_alloc) \
{ POINTER=0;return EXCEPT; } \
}while(0)#define JADE_NEW_NORETURN(POINTER,CONSTCLASS) \
do{ try{ POINTER = new CONSTCLASS; } \
catch(std::bad_alloc) \
{ POINTER = 0 ; return ;} \
}while(0)
检查构造函数
例如:
TagenelH tag ;
TagenelH 是一个类指针
可以这样定义吗?