如果定义是DWORD SetCheck(int nCheck, BOOL bRepaint);编译不能通过的.
但是有一种情况:
这样定义DWORD SetCheck(int nCheck, BOOL bRepaint=FALSE);这样就可以了,表示如果调用时不添bRepaint项就默认FALSE.
这个在MFC的内置函数中很常见.
///////////////////////////////////
大部分bRepaint的都有提供默认的值定义, 你可以进去看下函数定义
给个win32测试的例子:
#include
void abc(int a, int b=1);
void abc(int a, int b)
{
printf("%d\n", a);
printf("%d\n", b);
}
int main()
{
abc(2);
return 0;
}
编译通过,打印结果
2
1
#include
void abc(int a, int b);
void abc(int a, int b)
{
printf("%d\n", a);
printf("%d\n", b);
}
int main()
{
abc(2);
return 0;
}
编译不通过
声明时,给形参加个缺省值.
如:DWORD CButtonST::SetCheck(int nCheck, BOOL bRepaint = TRUE) ;
那一定是重载了该函数,另外一个同名的函数只有一个参数