zoukankan      html  css  js  c++  java
  • <c++primer plus>学习笔记1之第八章函数探幽

    1 c++内联函数

      编译器将使用相应的函数代码替换函数调用,对于内联代码,函数无需跳到另一个位置执行代码再跳回来,所以内联函数运行速度比常规函数快。

    但是代价是需要更多的内存。

      使用场合:

        执行函数代码的时间比处理函数调用机制的时间长,在我看来就是代码量比较少的方法而且多次使用的情况。

      使用方法:

        函数声明前加上关键字inline

        函数定义钱加上关键字inline 

      宏与内联函数区别:

         https://blog.csdn.net/chenguolinblog/article/details/27126589

    2 引用变量

      (1) 引用是已经定义变量的别名,主要是用作函数的形参,通过将引用用作参数,函数将使用原始数据,不是副本,这样感觉和传指针有一曲同工之妙,后续补充。

      (2) 引用更加接近const指针,必须再创建的时候进行初始化

      尽可能得使用const

        使用const可以避免无意中修改数据的编程错误

        使用const使函数能够处理const和非const实参 否则只能接受非const数据

        使用const引用使函数能够正确生成并使用临时变量(如果实参和应用参数不匹配,c++将生成临时变量)

       (3)返回引用需要注意得问题

         避免返回函数终止时不再存在得内存单元引用(定义局部变量再返回)

         处理方法:

          返回一个作为参数传递给函数得引用

          new分配新得空间

       (4) 什么时候使用引用参数

         修改调用函数中得数据对象

         通过传递引用而不是整个数据对象,可以提高程序得运行速度

       对于修改调用函数中数据得函数

            如果数据对象是结构,使用引用和指针

         如果数据对象使类对象,使用引用

         如果数据对象是数组,使用指针

    3 默认参数

      对于带参数列表得函数,必须从左向右添加默认值

        int get_line(int n,int m=2,int n=3)

    4 函数重载

      可以有多个同名得函数,因此对名称进行重载,重载得关键是函数得参数列表

      匹配函数并不区分const与非const,把类型引用和类型本身视为同一个特征标,也就是下面这类不属于重载

        double cube(double x)

        double cube(double &x)

    5 函数模板

      模板不创建任何函数,只是告诉编译器如何定义函数

      template <typename(class) AnyType>

      void swap(AnyType &a,AnyType &b)

      {}

    函数模板后面弄明白再记录了

  • 相关阅读:
    洛谷 P1604 B进制星球
    629D
    。。。。。
    新安排
    计算几何的两道题
    cf C题
    昨天
    最近几天的安排
    最近几天
    杂论——持续更新。
  • 原文地址:https://www.cnblogs.com/lanjianhappy/p/10569555.html
Copyright © 2011-2022 走看看