C++之默认参数详解

下面将介绍另一项新的内容--默认参数。默认参数指的是当函数中调用中缺省了实参自动使用一个值,比如下面程序:

void Print(int a=1)
{
    cout<<”a的值:“<<a<<endl;
}

此时如果不给参数,打印的就是1,如果给了其他的数,就打印其他的数。

其实,默认参数可以分为两种,一种是全缺省参数,一种是半缺省参数。即全缺省参数就是所有参数都缺省了,都有默认值,半缺省就是一部分有默认值,一部分没有。

首先我们先来我们来看下全缺省的情况:

void funk(int a=1,int b=2,int c=3)

这样就属于全缺省,每一个参数都有自己的默认值,但在使用这个全缺省时,实参只能从左往右的顺序依次赋给相应的形参,而不能跳过任何参数,因此下面的调用是不被允许的:

func(3, ,4);

默认参数并非编程方面的重大突破,而只是提供了一种便捷的方式,在设计类时您将发现,通过使用默认参数,可以减少要定义的析构函数、方法以及方法重载的数量。

接下来我们来学习下半缺省状态,下面就是半缺省:

func(int a,int b=1;int c=2);

从上面可知,缺省状态只能从右边开始,连续的,所以下面时不被允许的:
 

func(int a=1,int b,int c=3);

这是不连续的,所以不行。

以上就是我们对默认参数的基本介绍。

  • 5
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在使用cv::goodFeaturesToTrack()函数时,需要设置一些参数来控制角点检测的效果。下面是各参数的详细解释: ```c++ void cv::goodFeaturesToTrack( InputArray image, // 输入图像,可以是8位或32位浮点型灰度图像 OutputArray corners, // 输出的角点坐标 int maxCorners, // 最多检测的角点数目 double qualityLevel, // 质量水平阈值,取值范围为[0,1],越大表示检测到的角点越准确 double minDistance, // 角点间最小距离,小于该距离的角点会被忽略 InputArray mask = noArray(), // 可选的掩膜图像,检测角点的区域 int blockSize = 3, // 计算角点响应函数时使用的窗口大小 bool useHarrisDetector = false, // 是否使用Harris角点检测算法,如果为false则使用Shi-Tomasi角点检测算法 double k = 0.04 // Harris角点检测算法的k值,取值范围为[0,04,0.06] ) ``` 其中,前两个参数image和corners均为必选参数,表示输入图像和输出的角点坐标;maxCorners表示最多检测的角点数目;qualityLevel表示质量水平阈值,越大表示检测到的角点越准确;minDistance表示角点间最小距离,小于该距离的角点会被忽略;mask为可选的掩膜图像,用于指定检测角点的区域;blockSize表示计算角点响应函数时使用的窗口大小;useHarrisDetector表示是否使用Harris角点检测算法,如果为false则使用Shi-Tomasi角点检测算法;k表示Harris角点检测算法的k值,取值范围为[0.04,0.06]。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值