一、简介
C++允许在声明函数或定义函数时,为形参指定一个默认值。
调用函数时,若给出对应实参,则将实参值传给形参,否则,形参值就是指定的默认值。
二、使用带默认形参值的函数
1、实例
#include<iostream>
using namespace std;
int s(int x=5,int y=6) //定义函数,指定形参默认值
{
int z;
z=x*y;
return z;
}
int main()
{
int A,B,S1,S2,S3;
cout<<"请输入A和B的值"<<endl;
cin>>A>>B; //假设:A=1,B=2;
S1=s(); //使用默认形参值:x=5,y=6
cout<<"S1="<<S1<<endl; //S1=5*6=30;
S2=s(A); //传递实参A=1,使用默认形参y=6
cout<<"S2="<<S2<<endl; //S2=1*6=6;
S3=s(A,B); //传递两个实参:A=1,B=2
cout<<"S3="<<S3<<endl; //S3=1*2=2;
return 0;
}
2、注意
1.当函数有多个默认形参值时,默认形参值从右到左顺序定义
int s(int a=5,int b) //错误❌
int s(int a,int b=6) //正确✔
int s(int a=5,int b=6) //正确✔
2.当函数既有声明又有定义时,只能在声明时指定默认形参值
3.形参的默认值可以是全局常量、局部常量,甚至一个函数,但绝不能是变量。
在相同的作用域内,默认形参值的定义必须唯一,但在不同的作用域内,指定的默认形参值可以不同。
#include<iostream>
using namespace std;
int L,W,S;//全局变量
void input(int a=2,int b=3)//定义函数,指定全局默认形参值
{
L=a;
W=b;
}
void output()
{
S=L*W;
cout<<"面积是:"<<S<<endl;
}
void show()
{
void input(int a=5,int b=6);//声明函数,指定局部默认形参值
input();//调用函数,使用局部默认的形参值(a=5,b=6)
output();
}
int main()
{
input();//调用函数,使用全局默认的形参值(a=2,b=3)
output();
input(8,6);//调用函数,用实参初始化形参
output();
show();
return 0;
}
本文介绍了C++中函数默认参数值的使用方法,包括如何定义带默认值的函数,以及使用默认参数值的注意事项。通过实例展示了如何在不传递所有参数时调用函数,演示了默认参数值从右到左的定义规则,并提醒了形参默认值不能为变量。此外,还讨论了在同一作用域和不同作用域内默认参数值的定义和使用差异。
1324

被折叠的 条评论
为什么被折叠?



