美文网首页
c++之默认函数

c++之默认函数

作者: 全村的卡密 | 来源:发表于2020-02-26 00:15 被阅读0次

C+ +允许函数设置默认参数,在调用时可以根据情况省略实参。规则如下:

  • 默认参数只能按照右到左的顺序
  • 如果函数同时有声明、实现,默认参数只能放在函数声明中
  • 默认参数的值可以是常量、全局符号(全局变量、函数名)
  • 函数重载、默认函数可能存在冲突性、二义性。建议优先保留默认函数
void display(int a, int b =10){
}
void display(int a){
}
//二义性,不知道调用哪个
display(19);

利用汇编理解重载实现:
对于
sum(int a,int b)无默认参数函数,其汇编码如下:


image.png

对于
sum(int a,int b = 4):


默认参数
汇编代码完全相同,(机器码E8后面地址不同是因为intel机器码计算方式所导致,它是根据所调用函数所处位置计算出来的机器码,但是其调用的函数地址是同一个地址)

所以调用sum(1)相当于调用sum(1,4);

相关文章

  • c++之默认函数

    C+ +允许函数设置默认参数,在调用时可以根据情况省略实参。规则如下: 默认参数只能按照右到左的顺序 如果函数同时...

  • 类可以没有构造函数和析构函数吗

    C++提供的默认函数 首先说一下一个C++的空类,编译器会加入哪些默认的成员函数 默认构造函数和拷贝构造函数 析构...

  • GeekBand C++面向对象高级编程(上) Second W

    C++ Big Three 首先是默认构造函数(default constructor) 的概念,默认构造函数是没...

  • 1.0 C++远征:函数参数默认值、函数重载、内联函数

    C++远征 [TOC] 一、函数参数默认值 1.函数参数默认值的声明 2.函数参数默认值的定义 3.函数参数默认值...

  • [剑指offer]01-赋值运算符函数

    在面向对象C++语言中,用户定义一个类时,会默认生成四个成员函数:默认构造函数、默认析构函数、默认复制构造函数和默...

  • C++:面向对象基础

    构造函数 C++中有三种构造函数:默认构造函数,有参构造函数,拷贝构造函数 类对象的初始化 括号法//默认构造函数...

  • deleted function

    C++会给类型生成一些默认函数:默认构造函数、复制构造函数、赋值函数等等。如果你不想要这些函数,比如你的类型没有复...

  • 从C++探究汇编.02

    默认参数 C++允许函数设置默认参数,调用时根据情况省略实参: 默认函数只能按照右到左的顺序如果函数同时有声明、实...

  • C++基础语法-默认参数、内联函数、引用

    函数默认参数 C++允许函数设置默认参数,在调用时可以根据情况省略实参。规则如下: 默认参数只能按照右到左的顺序 ...

  • C语言和C+的这些区别你知道吗?

    1.带有默认值的函数 在C语言里面没有带默认值的函数,C++支持带默认值的函数。 在给形参默认值的时候,要按照从右...

网友评论

      本文标题:c++之默认函数

      本文链接:https://www.haomeiwen.com/subject/bezkchtx.html