从CDialog类派生了一个子类CFunc1Dlg,并想重载CFunc1Dlg类的构造函数,
class CFunc1Dlg : public CDialog
{
// Construction
public:
CFunc1Dlg(CWnd* pParent = NULL); // standard constructor
CFunc1Dlg(CWnd* pParent= NULL,CString reload);////*****错误提示:missing default parameter for parameter 2;
CFunc1Dlg(int a=1,int b);/////其实这也编译不过去,也是提示missing default parameter for parameter 2;
.....打星号的那句是重载构造函数,但是编译不过去,提示说第2个参数必须提供默认值,改成: CFunc1Dlg(CWnd* pParent= NULL,CString reload="");///******reload加了赋默认值,就可以通过编译;
就能编译成功了,可是这是为什么?按理说c++的机制是劝告程序员最好不要有两个默认构造函数的,可是为什么这里编译器反而必须让我重载的构造函数都必须提供全部的参数默认值呢?
请高手指点!附重载构造函数定义实现:
CFunc1Dlg::CFunc1Dlg(CWnd* pParent,CString reload): CDialog(CFunc1Dlg::IDD, pParent)
{
MessageBox(reload);
}
class CFunc1Dlg : public CDialog
{
// Construction
public:
CFunc1Dlg(CWnd* pParent = NULL); // standard constructor
CFunc1Dlg(CWnd* pParent= NULL,CString reload);////*****错误提示:missing default parameter for parameter 2;
CFunc1Dlg(int a=1,int b);/////其实这也编译不过去,也是提示missing default parameter for parameter 2;
.....打星号的那句是重载构造函数,但是编译不过去,提示说第2个参数必须提供默认值,改成: CFunc1Dlg(CWnd* pParent= NULL,CString reload="");///******reload加了赋默认值,就可以通过编译;
就能编译成功了,可是这是为什么?按理说c++的机制是劝告程序员最好不要有两个默认构造函数的,可是为什么这里编译器反而必须让我重载的构造函数都必须提供全部的参数默认值呢?
请高手指点!附重载构造函数定义实现:
CFunc1Dlg::CFunc1Dlg(CWnd* pParent,CString reload): CDialog(CFunc1Dlg::IDD, pParent)
{
MessageBox(reload);
}
解决方案 »
- SetWindowsHookEx( ) 和DLL的问题
- 问 用vc开发压缩解压的详细方法和过程 急用
- 请问各位大侠 char s[1024]是什么意思?
- 如何实现光照的效果??
- 请问:怎么把TabCtrl的页面和相应的对话框连接起来啊,谢谢!
- 如何把char【n】拷贝到已经申请好空间的bstr中
- 高难问题!!!如何使用OLEDB生成一个Access2000数据库文件
- 关于打印,如何能打印出表格样式的边框?(不能用字体的下划线和"_"等等)
- 关于accept的问题,我在accept的时候,希望得到客户端的地址……高分呀!!!
- 图像中竖条纹的识别与修复
- 建立套接字,用Receive接收,为什么我还没发送,就能接收到很大的负数,好象是地址。
- 问一个C++有屎以来最菜的问题。
CFunc1Dlg(CString reload,CWnd* pParent= NULL);默认构造函数必须放在后面!!!
因为第一参数已设置了默认值,则后面的所有参数均要设置默认值,这是规定。
CFunc1Dlg(int a=1,int b);同
可以定义为
CFunc1Dlg(CString reload,CWnd* pParent= NULL);
默认构造函数如:
CFunc1Dlg(CWnd* pParent = NULL);
CFunc1Dlg::CFunc1Dlg(CWnd* pParent /*=NULL*/)
: CDialog(CFunc1Dlg::IDD, pParent)重载的构造函数一样要,如
CFunc1Dlg::CFunc1Dlg(vector<vec_intandstr> &vec,int col,LPCTSTR str): CDialog(CFunc1Dlg::IDD)