返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C++初阶教程之缺省参数与函数重载
  • 845
分享到

C++初阶教程之缺省参数与函数重载

c++ 缺省参数c++ 函数重载c++缺省值怎么设置 2023-05-17 09:05:54 845人浏览 泡泡鱼
摘要

目录一.缺省参数1.概念2.分类3.注意二.函数重载1.概念2.c++支持函数重载的原理linux的修饰规则总结一.缺省参数 C++祖师爷在用C写代码的时候,就觉得有些地方用着很不方

一.缺省参数

C++祖师爷在用C写代码的时候,就觉得有些地方用着很不方便,于是就在C++设计了缺省参数,在实现一些功能时,用这个就方便了许多。

1.概念

缺省参数是声明或定义函数时为函数的参数指定一个缺省值。在调用该函数时:

      a.如果没有指定实参则采用该形参的缺省值;

      b.否则使用指定的实参。

例:

2.分类

a.全缺省参数:函数的所有参数都是缺省参数。

//全缺省参数
void func(int a=10,int b=20)
{
    return a+b;
}

b.半缺省参数:函数的部分参数是缺省参数,并不是非得有一半是缺省参数。

//半缺省参数
void func(int a,int b=20,int c=10)
{
    return a+b+c;
}

3.注意

a.缺省参数是从右往左,所以不能隔着给;

b.函数传参是从左往右,所以不能跳着传参;

c.函数的声明和定义不能同时出现缺省参数,只能在声明出现,定义不能出现;

d.缺省值必须是常量或是全局变量。

二.函数重载

先来讲讲重载在生活中的例子。

简单来说就是一个词的不同意思,我们来看一个笑话吧:

            国有两个体育项目大家根本不用看,也不用担心。一个是乒乓球,一个是男足。前者是“谁也赢不了!”,后者是“谁也赢不了!

同一词”谁也赢不了“,表达的却是不同的意思,这就是重载。

1.概念

函数重载:是函数的一种特殊情况,C++允许在同一作用域中声明几个功能类似的同名数;

特点:

          a.同名

          b.参数的类型,个数,类型顺序不同

          c.与返回值是否相同无关

注意:函数中有缺省参数也可以认为是函数重载;

例:

void func()
{
    cout << 1 << endl;
}
 
void func(int a = 10)
{
    cout << 10 << endl;
}
 
//但这种情况要注意,如果这样调用函数:func(),就会报错

如果使用不当,会造成这个错误:

注意以下情形并不构成函数重载:

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

至于为什么不构成,这就涉及到函数重载的原理了,下面让我们一起来看看函数重载的原理吧。

2.C++支持函数重载的原理

C++编译器中,调用函数时,不是直接用函数名,而是会对函数名进行修饰,根据修饰后的调用函数。而C编译器并不会对函数进行修饰,它是直接用函数名来调用函数的,所以C不支持函数重载。

所以上述不构成函数重载的情形就得到了解释。

不同环境下的修饰规则不同,vs的较为复杂,这里以Linux的修饰规则为例

Linux的修饰规则

_Z+函数名的长度+函数名+参数类型的第一个字母

void  func(int a,double b);
//Linux环境下修饰后的:_Z4funcid

总结

到此这篇关于C++初阶教程之缺省参数与函数重载的文章就介绍到这了,更多相关C++缺省参数与函数重载内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: C++初阶教程之缺省参数与函数重载

本文链接: https://lsjlt.com/news/210940.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • C++初阶教程之缺省参数与函数重载
    目录一.缺省参数1.概念2.分类3.注意二.函数重载1.概念2.C++支持函数重载的原理Linux的修饰规则总结一.缺省参数 C++祖师爷在用C写代码的时候,就觉得有些地方用着很不方...
    99+
    2023-05-17
    c++ 缺省参数 c++ 函数重载 c++缺省值怎么设置
  • C++缺省参数与函数重载怎么使用
    这篇文章主要介绍了C++缺省参数与函数重载怎么使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C++缺省参数与函数重载怎么使用文章都会有所收获,下面我们一起来看看吧。一、缺省参数缺省参数形象来说就是"...
    99+
    2023-07-02
  • C++简明讲解缺省参数与函数重载的用法
    目录一、缺省参数1.1缺省参数概念1.2缺省参数分类二、函数重载2.1函数重载概念2.2名字修饰一、缺省参数 缺省参数形象来说就是"备胎"。 1.1缺省参数概念 ...
    99+
    2024-04-02
  • C语言 函数缺省参数详情
    目录一.函数简介1.函数声明2.函数定义3.函数调用 4.函数形参和实参 二.函数缺省参数1.函数全缺省参数2.函数半缺省参数三.注意事项一.函数简介 1.函数声明 函数声明只是一个...
    99+
    2024-04-02
  • 【C++深入浅出】初识C++上篇(关键字,命名空间,输入输出,缺省参数,函数重载)
         目录 一. 前言 二. 什么是C++ 三. C++关键字初探 四. 命名空间 4.1 为什么要引入命名空间 4.2 命名空间的定义 4.3 命名空间使用 五. C++的输入输出 六. 缺省参数 6.1 缺省参数的概念 6.2 缺...
    99+
    2023-09-02
    c++ 开发语言 笔记 函数重载 缺省参数 命名空间
  • C++入门(命名空间,缺省参数,函数重载,引用,内联函数,auto,范围for)
    目录一.C++关键字二.命名空间三.缺省参数四.函数重载五.extern"C"六.引用七.内联函数八.auto关键字(C++11)九.范围for一.C++关键字 C++总共有63个关...
    99+
    2024-04-02
  • 详解C语言初阶之函数
    目录 1.main函数2.自定义函数2.1  函数的的封装和面向过程的思维3.函数的组成3.1函数的命名法3.2函数的返回值3.2.1void类型补充:3.3形参...
    99+
    2024-04-02
  • C++ 函数重载和函数默认参数
    是的,c++++ 允许函数重载和函数默认参数。函数重载可创建具有相同名称但不同参数列表的函数,编译器根据参数类型决定调用哪个重载。函数默认参数可为部分参数提供默认值,在没有提供参数时使用...
    99+
    2024-04-13
    c++ 函数重载 函数默认参数
  • C++之函数的重载
    目录一、C++ 函数重载1.重载规则2.匹配原则3.重载底层实现4.extern “C”总结一、C++ 函数重载 C++ 致力于简化编程,能过函数重名来达到简化编程的目的 1.重载规...
    99+
    2024-04-02
  • C语言进阶教程之字符函数&字符串函数
    目录1、strlen1.1、三种模拟实现2、长度不受限制的字符串函数2.1、strcpy2.1.1、模拟实现2.2、strcat2.2.1、模拟实现2.3、strcmp2.3.1、模...
    99+
    2024-04-02
  • c++核心编程之函数的重载
    目录1.函数重载概述2.函数重载的注意事项1.函数重载概述 ​作用​:函数可以相同,提高复用性 ​函数重载必须满足的条件​: 1​.同一个作用域下​2.​函数名称相同​3.函数​参...
    99+
    2024-04-02
  • C语言之函数返回值与参数传递案例教程
    C语言函数返回值与参数传递 一:参数传递 C语言的函数中必不可少的就是参数传递,可以采用传值和传指针两种方式。 1.传值的形式:只是将参数值的拷贝传给函数,并非参数本体如: in...
    99+
    2024-04-02
  • C++ 函数参数详解:函数重载中参数传递的影响
    在 c++++ 函数重载中,函数参数的传递方式会影响函数重载的行为。影响如下:1. 传值:只关心参数数量和顺序;2. 传引用:考虑参数类型;3. 传指针:不考虑参数类型。实战中,理解传递...
    99+
    2024-04-27
    c++ 函数重载 参数传递
  • Python基础之函数参数与返回值进阶
    参数作用:如果外界希望在函数内部处理数据,就可以将数据作为参数传入函数内部; 返回值作用:如果希望一个函数函数执行完成后,向外界报告函数的执行结果,就可以使用函数的返回值。 函数的返回值 进阶 利用元组返回多个函数值 可以用元组让函数返回...
    99+
    2023-01-31
    进阶 函数 返回值
  • C语言进阶教程之函数指针详解
    目录一、函数指针1.概念1.2函数指针的使用方法1.3练习巩固1.4小结一下二、阅读两段有趣的代码1.( *(void( *)( ))0 )( )2.void (* signal(i...
    99+
    2024-04-02
  • 详解C++函数类型与重载函数
    目录1.首先对重载函数,明确函数的返回类型不能决定重载函数的类别,即2.注意形参列表中的默认值,使用含默认参数的重载函数时可能会产生二义性。例:问题:总结 1.首先对重载函数,明确函...
    99+
    2024-04-02
  • C++ 函数重载中参数的顺序如何影响重载?
    在 c++++ 函数重载中,参数顺序至关重要,编译器根据参数顺序区分重载函数,即使参数类型相同,顺序不同的函数也会被视为不同的函数。 C++ 函数重载中的参数顺序 函数重载允许创建具有...
    99+
    2024-04-28
    c++ 函数重载
  • C++重载的奥义之函数重载详解
    目录一、基本定义        二、应用举例        三、非函数重载的情况四、函数重载的使用原则...
    99+
    2023-05-16
    C++ 函数重载 C++ 函数 C++ 重载
  • C++ 函数重载中参数的数据类型如何影响重载?
    函数重载中参数的数据类型影响解析,匹配过程基于类型。数据类型提升和转换可能改变匹配。void 类型可与任何参数类型匹配。实践中,根据参数类型调用合适的重载函数,实现类型特定的处理。 C...
    99+
    2024-04-27
    c++ 函数重载
  • C++ 函数默认参数与可变参数的优缺点比较
    c++++ 函数中默认参数的优点包括简化调用、增强可读性、避免错误。缺点是限制灵活性、命名限制。可变参数的优点包括无限灵活性、动态绑定。缺点包括复杂性更高、隐式类型转换、调试困难。 C...
    99+
    2024-04-21
    函数 c++ 隐式类型转换
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作