error C2548: 缺少参数 2 的默认参数

.h文件
void DeleteTableRecursion(int beginPos, int &size, COuterIRelation *pt);
.cpp文件
void CCSyncSetDlg::DeleteTableRecursion(int beginPos=0, int &size, COuterIRelation *pt)
{
int i=0, k=0;
for(i=beginPos; i<size; i++)
{
if(vecNodes[i]->pt==pt && vecNodes[i]->type==SYNC_ROW)
{
//DeleteRowRecursion(i+1, size, vecNodes[i]->pr);
vecNodes[i]->bDel = FALSE;
vecNodes[i]->bNew = FALSE;
}
}
}

然后编译报错:
1>e:\csyncset\csyncset\csyncsetdlg.cpp(463) : error C2548: “CCSyncSetDlg::DeleteTableRecursion”: 缺少参数 2 的默认参数
1>e:\csyncset\csyncset\csyncsetdlg.cpp(463) : error C2548: “CCSyncSetDlg::DeleteTableRecursion”: 缺少参数 3 的默认参数

原因:
C++语法规定:只要有一个默认参数,那么该参数后面的所有参数都必须指定默认值
C/C++ code

void f1(int i, int x = 0, int y);//错
void f2(int i, int x = 0, int y = 0);//对
这是为了能够判断你调用时省略的到底是哪一个参数
解决:你可以改成这种形式,将调用的都相对的改一下
参考:http://topic.csdn.net/u/20090711/22/51677a10-54ab-4878-afaf-ae0a351f7a36.html
展开阅读全文

没有更多推荐了,返回首页