C++核心编程之占位参数和默认参数

 更新时间:2022年03月21日 11:52:58   作者:高云城  
这篇文章主要介绍了C++核心编程之占位参数和默认参数,c++中函数的形参列表中的形参是可以有默认值的,函数的形参列表里可以有占位参数,用来占位,调用函数时必须填补位置。下面更多相关内容的详细介绍,需要的小伙伴可以参考一下

1,默认参数

在c++中,函数的形参列表中的形参是可以有默认值的。

  • 语法: 返回值类型 函数名 (参数 = 默认值)
  • 注意事项:1从左到右设置默认参数。2不能重定义默认参数

代码示例:

int test(int a, int b=10, int c=10)
{
  return a + b + c;
}

​b=10和c=10就是函数的默认参数,当不给b和c赋值时,就用默认的参数

使用

​使用默认参数时候有两点要注意​:

(1)设置默认参数的时候,必须从左到右都设置。

既从左到右的第一个参数设置默认值了,其后面都要设置默认参数。可以都设也可以都不设

代码示例:

int test02(int a,int b,int c=10,int d=20,int f=30)
{
  return a + b + c + d + f;
}

(2)不能重定义默认参数。既函数的定义和函数的实现时,只能选择其一设置默认参

代码示例:

int test03(int a = 10, int b = 10);

int test03(int a,int b)
{
  return a + b;
}

int main()
{
  cout << test(10) << endl;//输出结果为30

  cout << test(10,30,30) << endl;//自动跳过默认的10,用的是30的值,输出结果为70
  
  system("pause");

}

2,函数占位参数

c++中函数的形参列表里可以有占位参数,用来占位,调用函数时必须填补位置

语法: 返回值类型 函数名 (数据类型) { }

void  test  ( int c int )
 {}

上方参数列表中 第二个 int 既是占位参数 

void func(int a,int)
{
  cout << "this is a function" << endl;
}

int main()
{
  func(10, 56); //若只传入10不传入56,那么func函数将不会被调用
  system("pause");
}

报错:

触发的情况:

占位参数的:​在调用的时候必须传入该类型的参数函数才能被调用​;

优点:可以用作函数的触发

到此这篇关于C++核心编程之占位参数和默认参数的文章就介绍到这了,更多相关C++占位参数和默认参数内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C++中的map使用方法详解

    C++中的map使用方法详解

    C++中的map是一种关联容器,用于存储键值对。它提供了一种非常高效的方法来快速查找特定的值,并且允许我们根据键来排序和遍历数据。在本文中,我们将深入了解C++中的map以及如何使用它来提高程序的效率,感兴趣的朋友可以参考下
    2023-05-05
  • 约瑟夫经典问题扩展成双向约瑟夫问题

    约瑟夫经典问题扩展成双向约瑟夫问题

    今天小编就为大家分享一篇关于约瑟夫经典问题扩展成双向约瑟夫问题,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-03-03
  • c++ STL容器总结之:vertor与list的应用

    c++ STL容器总结之:vertor与list的应用

    本篇文章对c++中STL容器中的vertor与list的应用进行了详细的分析解释。需要的朋友参考下
    2013-05-05
  • 基于OpenCV读取摄像头实现单个人脸验证MFC程序

    基于OpenCV读取摄像头实现单个人脸验证MFC程序

    这篇文章主要为大家详细介绍了基于OpenCV读取摄像头实现单个人脸验证MFC程序,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-08-08
  • C++中的异常实例详解

    C++中的异常实例详解

    异常处理是C++的一项语言机制,用于在程序中处理异常事件,下面这篇文章主要给大家介绍了关于C++中异常的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-02-02
  • Vscode搭建远程c开发环境的图文教程

    Vscode搭建远程c开发环境的图文教程

    很久没有写C语言了,今天抽空学习下C语言知识,接下来通过本文给大家介绍Vscode搭建远程c开发环境的详细步骤,本文通过图文实例代码相结合给大家介绍的非常详细,需要的朋友参考下吧
    2021-11-11
  • C++ 超详细分析多态的原理与实现

    C++ 超详细分析多态的原理与实现

    这篇文章主要介绍了C++多态的原理与实现,多态是一种面向对象的设计思路,本身和C++不是强绑定的,其他语言当中一样有多态,只不过实现的方式可能有所不同。下面来一起了解更多详细内容吧
    2022-03-03
  • C语言中的5种简单排序算法(适合小白)

    C语言中的5种简单排序算法(适合小白)

    在编程练习时我们经常会遇到一些将一串乱序的数字排列成有序的数列(递增,递减)的问题,以此起到解决问题的效果,下面这篇文章主要给大家介绍了关于C语言中的5种简单排序算法的相关资料,需要的朋友可以参考下
    2023-03-03
  • C++11运算符重载和向量类重载实例详解(<<,>>,+,-,*等)

    C++11运算符重载和向量类重载实例详解(<<,>>,+,-,*等)

    这篇文章主要给大家介绍了关于C++11运算符重载和向量类重载的相关资料,主要包括<<,>>,+,-,*等,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2021-07-07
  • C语言调用SQLite数据库实现数据增删改查

    C语言调用SQLite数据库实现数据增删改查

    SQLite是一种轻量级的关系型数据库管理系统,是一个开源的、零配置的、服务器端的、自包含的、零管理的、事务性的SQL数据库引擎,本文主要介绍了如何调用SQLite数据库实现数据增删改查,需要的可以参考一下
    2023-08-08

最新评论