C++出现error:重定义默认参-解决方法

默认参数指的当函数调用中省略了自动实参。

需要注意的是:对于带参数列表的函数,必须从右向左添加默认值,也就是说,如果我们想给某个参数设置一个默认值,那么必须这个参数右边所有的参数提供默认值。从右到左。

好了,接下来讲一下函数使用默认参数常常忽略的问题:举例说明

错误情况:

void colorReduce(const Mat &Image, Mat &result, int div = 64);
int main(void)
{
colorReduce(scr_Image, dst_Image);
}
void colorReduce(const Mat &Image, Mat &result, int div = 64)
{
}

报错:error C2572: “colorReduce”: 重定义默认参数 : 参数 3


修改方法有两种:

(1)-推荐使用:声明时带有默认参数,实现中没有

void colorReduce(const Mat &Image, Mat &result, int div = 64);
int main(void)
{
colorReduce(scr_Image, dst_Image,16);

//colorReduce(scr_Image, dst_Image); 都可
}
void colorReduce(const Mat &Image, Mat &result, int div)
{
}

(2)声明中不带默认参数

void colorReduce(const Mat &Image, Mat &result, int div );
int main(void)
{
colorReduce(scr_Image, dst_Image,16);

}
void colorReduce(const Mat &Image, Mat &result, int div = 64)
{
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值