C++第二弹:C+备胎(缺省参数)

生活中备胎这个概念相信大家都很熟悉,不管是字面的意义,还是“备胎”这个词的引申意,其实,不止是在生活中,在我们的C++中,“备胎”也是存在的,这就是我们今天的主题——缺省参数,那么为什么说它是C+中的“备胎”呢,相信大家看了这篇文章就会一目了然了。

缺省参数的概念

缺省参数是指声明或定义函数时为函数的参数指定一个默认值。而在调用该函数时,如果没有指定实参则采用该默认值,否则使用指定的实参。
看了缺省参数的概念相信大家对于它为什么叫C++里的备胎已经有一定的认识了,下面通过这个例子来加深大家的印象。
例子:

#include <iostream>
using namespace std;

void Function(int a = 1)
{
    
    
	cout << a << endl;
}
int main()
{
    
    
	Function();
	Function(20);
	system("pause");
}

运行结果:
在这里插入图片描述
上面的代码的运行结果中,第一个是调用Function()函数的结果,这里我们没有给指定的参数,所以输出的结果是0,第二个我们调用的是Function(10)这个函数,因为我们给了实参,所以输出的是10。

缺省参数的分类

全缺省参数

顾名思义,就是在声明或者定义一个函数的时候,为函数的所有参数都指定一个默认值。
例子:

void Function(int a = 10, int b = 30, int c = 60)
{
    
    
	cout << "a = " << a << endl;
	cout << "b = " << b << endl;
	cout << "c = " << c << endl;
}

半缺省参数

参照全缺省参数的定义,半缺省参数就是指在声明或者定义一个函数的时候,不为函数的所有参数都指定一个默认值。
例子:

void Function(int a , int b = 30, int c = 60)
{
    
    
	cout << "a = " << a << endl;
	cout << "b = " << b << endl;
	cout << "c = " << c << endl;
}

使用缺省参数的注意事项

1.半缺省参数必须从右往左依次给出,不能间隔着给出
例如:

void Function(int a ,int b = 20,int c )
{
    
    }//错误

2.缺省参数不能在函数声明和定义中同时出现
因为如果声明与定义位置同时出现,而恰好两个位置提供的值不同,此时编译器就无法确定到底该用那个缺省值
例如:

//a,h 
void Function(int a = 10);

//a.c
void Function(int a = 50)
{
    
    

}

3.缺省值必须是常量或者全局变量

int d = 20;
void Function(int a = d ,int b = 20,int c )
{
    
    }//错误

4.C语言不支持

猜你喜欢

转载自blog.csdn.net/qq_43825377/article/details/109171750
c+