【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!“


相关文章
|
6天前
|
安全 编译器 Linux
【C++练级之路】【Lv.1】C++,启动!(命名空间,缺省参数,函数重载,引用,内联函数,auto,范围for,nullptr)
【C++练级之路】【Lv.1】C++,启动!(命名空间,缺省参数,函数重载,引用,内联函数,auto,范围for,nullptr)
|
6天前
|
存储 算法 程序员
【C++20 新特性 】模板参数包展开与Lambda初始化捕获详解
【C++20 新特性 】模板参数包展开与Lambda初始化捕获详解
92 3
|
6天前
|
编译器 程序员 C++
C++缺省参数
C++缺省参数
18 0
|
6天前
|
存储 安全 编译器
【C++入门】缺省参数、函数重载与引用(下)
【C++入门】缺省参数、函数重载与引用
|
6天前
|
C语言 C++ 数据格式
【C++对于C语言的扩充】C++与C语言的联系,命名空间、C++中的输入输出以及缺省参数
【C++对于C语言的扩充】C++与C语言的联系,命名空间、C++中的输入输出以及缺省参数
|
6天前
|
算法 程序员 C++
【C/C++ 泛型编程 应用篇】C++ 对多参数的参数包的 参数类型提取 应用
【C/C++ 泛型编程 应用篇】C++ 对多参数的参数包的 参数类型提取 应用
49 5
|
6天前
|
编译器 C语言 C++
【C++】基础知识讲解(命名空间、缺省参数、重载、输入输出)
【C++】基础知识讲解(命名空间、缺省参数、重载、输入输出)
13 1
【C++】基础知识讲解(命名空间、缺省参数、重载、输入输出)
|
6天前
|
编译器 C语言 C++
【C++入门】缺省参数、函数重载与引用(上)
【C++入门】缺省参数、函数重载与引用
|
6天前
|
数据安全/隐私保护 C++
C++ 构造函数实战指南:默认构造、带参数构造、拷贝构造与移动构造
C++中的构造函数是特殊成员函数,用于对象初始化。类型包括默认构造函数(无参数)、带参数构造函数、拷贝构造函数和移动构造函数。默认构造函数设置对象默认状态,带参数构造函数允许传递初始化值。拷贝构造函数复制已有对象,移动构造函数高效转移资源。构造函数的访问权限可控制为public、private或protected。理解构造函数有助于编写健壮的C++代码。关注公众号`Let us Coding`获取更多内容。
25 0
|
6天前
|
数据安全/隐私保护 C++
C++ 类方法解析:内外定义、参数、访问控制与静态方法详解
C++ 中的类方法(成员函数)分为类内定义和类外定义,用于操作类数据。类内定义直接在类中声明和定义,而类外定义则先在类中声明,再外部定义。方法可以有参数,访问权限可通过 public、private 和 protected 控制。静态方法与类关联,不依赖对象实例,直接用类名调用。了解这些概念有助于面向对象编程。
16 0