默认参数指的当函数调用中省略了自动实参。
需要注意的是:对于带参数列表的函数,必须从右向左添加默认值,也就是说,如果我们想给某个参数设置一个默认值,那么必须这个参数右边所有的参数提供默认值。从右到左。
好了,接下来讲一下函数使用默认参数常常忽略的问题:举例说明
错误情况:
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)
{
}