美文网首页
C++ 函数重载 默认参数 内联函数

C++ 函数重载 默认参数 内联函数

作者: hank009 | 来源:发表于2020-12-15 11:50 被阅读0次

函数重载 (overload

规则

  • 函数名相同
  • 参数个数不同、参数类型不同、参数顺序不同

注意

  • 返回值类型和函数重载无关
  • 调用函数时,实参的隐式类型转换可能会产生二义性
int sum(int v1, int v2) {
    return v1 + v2;
}
int sum(int v1, int v2, int v3) {
    return v1 + v2 + v3;
}

void func(int v1, double v2) {
    cout << "func(int v1, double v2)" << endl;
}
void func(double v1, int v2) {
    cout << "func(double v1, int v2)" << endl;
}

默认参数

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

  • 默认参数只能按照从左到右的顺序
  • 如果函数同时有声明、实现,默认参数只能放在函数声明中
  • 默认参数的值可以时常量、全局符号(全局函数、函数名)
int age = 28;
void test(){
    cout << "test()" << endl;
}

void display(int a = 11,int b = 22, int c = age, void (*func)() = test){
    cout << "a is " << a << endl;
    cout << "b is " << b << endl;
    cout << "c is " << c << endl;
    func();
}

如果函数的实参经常时同一个值,可以考虑使用默认参数。


内联函数 (inline function)

内联函数:编译器会将内联函数调用展开为函数体代码。

OC、C++ 都有内联函数

内联函数可以解决 函数调用效率的问题:

  • 函数调用需要开辟栈空间,有一定的时间消耗
  • 内联函数不会开辟栈空间,可以减少函数调用的开销
什么地方适合用内联函数:
  • 函数代码体积小
  • 函数频繁调用
内联函数与宏
  • 内联函数和宏,都可以减少函数调用的开销
  • 对比宏,内联函数多了语法检测和函数特性。 所以在两者都可用的地方,首选内联函数
写了 inline 关键字,函数会不会内联,还与一下因素有关
  • 递归函数不会内联
  • debug 模式一般不会内联,release 模式才会优化代码,内联
  • 函数会不会内联,还与函数体代码量有关,与编译器也有一定关系

相关文章

  • 《C++ Primer Plus》:函数探幽

    本章内容概览 内联函数 引用变量 按引用传递函数参数 默认参数 函数重载 函数模板 内联函数 内联函数是C++为提...

  • c++函数特性

    函数重载,参数默认值,内联函数 重载:函数名相同,参数列表不同,作用域相同。 参数默认值:参数默认值必须从最后开始...

  • 第八章 函数探幽(1)c++内联函数

    c++赋予了一些新的关于函数的特性,包括,内联函数,按引用传递变量,默认的参数值,函数重载(多态),以及模板函数...

  • C++ 函数重载 默认参数 内联函数

    函数重载 (overload) 规则 函数名相同 参数个数不同、参数类型不同、参数顺序不同 注意 返回值类型和函数...

  • Swift函数

    概览函数定义隐式返回返回元组(实现多值返回)函数参数参数标签默认参数值可变参数输入输出参数函数重载内联函数函数类型...

  • 11-7&&11-8 C++

    重载函数默认参数函数 inline 内联函数相当于宏 节省时间但浪费空间 避免了出站和压栈的时间 重载函数 函...

  • 内联函数,重载函数,参数默认的函数

    内联函数 内联函数和宏差不多,要是时间不要空间;关键字inline。内联函数中,不能有复杂的控制语句,比如if或f...

  • 王道程序员求职宝典(十)函数,栈与队列

    函数 参数传递值传递指针传递引用传递指针引用*& 内联函数成员函数内联普通函数内联宏定义 默认参数从右向左设定默认...

  • C++基础(引用和函数的高级算法)

    C++基础 引用和函数的高级算法 课程目标 引用的优点和使用方法 引用函数,内联函数,默认参数函数,递归函数。 引...

  • Kotlin 函数4 - 函数重载与默认参数

    Kotlin 函数4 - 函数重载与默认参数 在 Kotlin 中可以使用默认参数的方式来代替函数的重载,就像下面...

网友评论

      本文标题:C++ 函数重载 默认参数 内联函数

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