【C++】缺省参数(默认参数)

简介: 【C++】缺省参数(默认参数)

📌缺省参数的概念

缺省参数是声明或定义函数时为函数的参数指定一个一个缺省值。调用该函数时,如果没有指定实参则采用该形参的缺省值,否则使用指定的实参

如下程序,Print函数有一个缺省值为0的参数p:

using std::cout;
using std::endl;
 
void Print(int p = 0)
{
  cout << p << endl;
}
 
int main()
{
  Print();      //没传参时,使用参数的默认值
  Print(1);     //传参时,使用指定的实参
  Print(2);
  Print(3);
 
  return 0;
}

程序运行结果:


📌缺省参数的分类

🎏全缺省参数

如下函数Sum,如果函数的所有参数都指定了缺省值,那么该函数就被称为全缺省参数:

void Sum(int a = 1, int b = 1, int c = 2)
{
  cout << a + b + c << endl;
}

🎏半缺省参数

如下函数Sum_2,如果函数既有未被指定缺省值的参数,又有被指定缺省值的参数,那么该函数就被称为半缺省参数:

void Sum_2(int a , int b = 1, int c = 2)
{
  cout << a + b + c << endl;
}

需要注意的是:

  1. 半缺省参数必须从右往左依次来给出,不能间隔着给。如下四种缺省函数的定义都是不合法的!
void Sum(int a = 1, int b , int c )//不符合从右往左给
{
  
}
 
void Sum(int a = 1, int b = 1, int c )//不符合从右往左给
{
  
}
 
void Sum(int a , int b = 1, int c )//不符合不能间隔
{
  
}
 
void Sum_2(int a = 1, int b , int c = 2)//不符合不能间隔
{
  
}
  1. 缺省参数不能在函数声明和定义中同时出现。像下面这种声明和定义中都包含缺省参数同样是不合法的:
  2. 缺省值必须是常量或者全局变量。

结语

希望这篇缺省函数简介能对大家有所帮助,欢迎大佬们留言或私信与我交流.

学海漫浩浩,我亦苦作舟!关注我,大家一起学习,一起进步!

相关文章推荐

【C++】命名空间

【C++】“Hello World!“


相关文章
|
3月前
|
编译器 程序员 C++
C++缺省参数
C++缺省参数
32 0
|
2月前
|
编译器 C++
C++进阶之路:何为命名空间、缺省参数与函数重载
C++进阶之路:何为命名空间、缺省参数与函数重载
27 3
|
3月前
|
存储 安全 编译器
【C++入门】缺省参数、函数重载与引用(下)
【C++入门】缺省参数、函数重载与引用
|
10天前
|
编译器 C语言 C++
C++入门 | 命名空间、输入输出、缺省参数
C++入门 | 命名空间、输入输出、缺省参数
25 4
|
25天前
|
算法 编译器 程序员
C++为什么有参数依赖查找(ADL)?
为什么在限定名称查找和非限定名称查找之外,C++还要提供参数依赖查找这样的机制呢?它其实是在规范的查找框架下,提供了一种灵活性的补充
|
29天前
|
编译器 C++ 容器
C++一分钟之-可变模板参数与模板模板参数
【7月更文挑战第21天】C++的模板实现泛型编程,C++11引入可变模板参数和模板模板参数增强其功能。可变模板参数(如`print`函数)用于处理任意数量的参数,需注意展开参数包和递归调用时的处理。模板模板参数(如`printContainer`函数)允许将模板作为参数,需确保模板参数匹配和默认值兼容。这些特性增加灵活性,但正确使用是关键。
32 4
|
1月前
|
存储 自然语言处理 编译器
【C++入门 三】学习C++缺省参数 | 函数重载 | 引用
【C++入门 三】学习C++缺省参数 | 函数重载 | 引用
|
2月前
|
C语言 C++ 编译器
【C++语言】冲突-C语言:输入输出、缺省参数、引用、内联函数
【C++语言】冲突-C语言:输入输出、缺省参数、引用、内联函数
【C++语言】冲突-C语言:输入输出、缺省参数、引用、内联函数
|
2月前
|
C++
C++函数的默认参数、占位符、重载
C++函数的默认参数、占位符、重载
28 0