• C++学习笔记之 函数


    函数

    默认参数

    #include <cstdlib>
    #include <cstdio>
    
    // 默认参数必须写在最后面,例如:int func(int a,int b = 0, int c = 2)
    void test(int a, int b = 10)
    {
        printf("%d + %d = %d
    ",a,b,a+b);
    }
    
    int main()
    {
        test(1,2);
        test(1); // 相当于test(1,10)
    
        return EXIT_SUCCESS;
    }
    
    1 + 2 = 3
    1 + 10 = 11
    

    函数的声明和实现只能一个有默认参数

    如果某个位置已经有了默认参数,那么后面的参数必须都是默认参数

    占位参数

    // 形参中只写数据类型的参数起占位作用,调用时必须传入实参
    // 运算符的重载中会涉及到
    int func(int a,int)
    {
        // ...
    }
    

    函数重载

    条件

    • 同一个作用域
    • 参数顺序不同
    • 参数数据类型不同
    • 参数个数不同

    例:

    #include <cstdio>
    #include <cstdlib>
    
    int func()
    {
        printf("func()
    ");
    }
    
    int func(int a)
    {
        printf("func(int a)
    ");
    }
    
    int main()
    {
        func();
        func(10);
    
        return EXIT_SUCCESS;
    }
    
    func()
    func(int a)
    

    作用

    #include <cstdio>
    #include <cstdlib>
    
    void print(int a)
    {
        printf("%d
    ",a);
    }
    
    void print(char a)
    {
        printf("%c
    ",a);
    }
    
    void print(double a)
    {
        printf("%g
    ",a);
    }
    
    int main()
    {
        print(1);
        print('C');
        print(3.14);
    
        return EXIT_SUCCESS;
    }
    
    1
    C
    3.14
    

    上面这段代码在C语言中是这样的:

    #include <cstdio>
    #include <cstdlib>
    
    void printi(int a)
    {
        printf("%d
    ",a);
    }
    
    void printc(char a)
    {
        printf("%c
    ",a);
    }
    
    void printd(double a)
    {
        printf("%g
    ",a);
    }
    
    int main()
    {
        printi(1);
        printc('C');
        printd(3.14);
    
        return EXIT_SUCCESS;
    }
    

    有种汇编语言的风味

    注意事项

    1. 引用的两个版本:const和不加const
      #include <cstdio>
      #include <cstdlib>
      
      void print(int &a)
      {
          printf("%d
      ",a);
      }
      
      void print(const int &a)
      {
          printf("%d
      ",a);
      }
      
      int main()
      {
          int a = 10;
          print(a);
          print(2);
      
          return EXIT_SUCCESS;
      }
      
      10
      2
      
    2. 如果用引用,就不要值传递
  • 相关阅读:
    free pascal dialect
    free pascal
    free pascal
    跳槽后在新公司的一点感悟
    安全攻防技能30讲
    设计模式之美(二)——设计模式
    设计模式之美(一)——设计原则、规范与重构
    数据结构和算法躬行记(8)——动态规划
    倾斜摄影实景三维在智慧工厂 Web 3D GIS 数字孪生应用
    智慧文旅促进旅游业发展,可视化带你云游武夷
  • 原文地址:https://www.cnblogs.com/zhujiangyu/p/13939053.html
Copyright © 2020-2023  润新知