zoukankan      html  css  js  c++  java
  • C++学习 之 函数的重载及内联(笔记)

    1.函数的使用:

      1.1 将数组传递给函数:

        当需要给函数传递数组作为参数时,其实传过来的是实参的地址就相当于使用引用或指针作为形参。

        例:

        

    int DisPlayArray(int Number[],int L)
    {
        for(int i=0;i<L;i++)
            cout<<"Array["<<i+1<<"]: "<<Number[i]<<endl;
        return 0;
    }    

      1.2 带默认值的函数参数:

        定义一个函数,当我们输入参数时就使用输入的参数,没有实参时就使用初始值。

        可以按如下定义:

    double area(int r,int h=0);//有初始值的参数要在无初始值的参数的后面定义
    int main()
    {
        int r=4;
        area(r);//如果area函数的初始化后的参数定义在前,就导致我们传给形参r的值传给了h,这样函数调用时就缺了参数值,编译报错
       return 0; }

    2.函数的重载:

      重载函数是指名称返回类型相同,但参数不同的函数。当我们需要同名函数并且参数不同时,重载函数就很有用。

      例如计算圆的面积和圆柱体的表面积:

    double area(int r)//r为圆的半径参数
    {
        cout<<3.14*r*r<<endl;
    return 0; }
    double area(int r,int h)//r为底面半径参数,h圆柱高度参数 { cout<<2*3.14*r*h+3.14*r*r*2<<endl;
    return 0;
    }

    3.内联函数

      内联函数是会在调用它的地方直接展开的函数;内联函数的代码应该是简短的。常规函数调用会导致栈操作、微处理器跳转到函数等操作,这个过程是很快的;但是如果函数比较简短这些操作就显得性价比不是很高。

      例如我们声明了如下功能的函数(定义Pi的值):

    double GetPi()
    {
    return 3.14159265; }

      像这样比较简单的函数我们就可使用内联的方法,从而减少调用用的时间。

      内联函数声明:

    inline double GetPi()
    {
        return 3.14159265;
    }

      将函数声明为内联会导致代码急剧膨胀,尤其是当函数进行了大量复杂操作时,例如循环等。所以我们要尽可能少的使用内联函数,除非函数特别简单需要降低开销。

  • 相关阅读:
    linux下使用OpenCV的一些问题
    Google Colab调用cv2.imshow奔溃
    [LeetCode] Word Search
    信号
    信号
    [Leetcode] Subsets
    [LeetCode] Combinations
    [LeetCode] Minimum Window Substring
    [LeetCode] Set Matrix Zeroes
    sigaction 函数
  • 原文地址:https://www.cnblogs.com/dulm/p/11237028.html
Copyright © 2011-2022 走看看