• 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. 如果用引用,就不要值传递
  • 相关阅读:
    HDU4685 Prince and Princess 完美搭配+良好的沟通
    坚持 本身是一种策略
    PowerDesigner中SQL文件、数据库表反向生成PDM
    Filter技术+职责链模式
    [ACM] poj 1258 Agri-Net (最小生成树)
    android 屏幕适配 课程笔记
    HDU 5071 Chat
    【玩转微信公众平台之中的一个】序章(纯粹扯淡)
    HTML表格标签的使用-&lt;table&gt;
    hdu 1251 统计难题 (map水过)
  • 原文地址:https://www.cnblogs.com/zhujiangyu/p/13939053.html
Copyright © 2020-2023  润新知