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)

  {}

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

最新文章

  1. Win10 连接L2TP VPN 失败解决方法
  2. Lessons Learned 1(敏捷项目中的变更影响分析)
  3. [HTML5]原生事件绑定和jquery动态事件绑定的区别
  4. 移动web开发--meta 之 viewport
  5. 请问下./在Linux下是什么意思
  6. Assert断言测试
  7. 黑马程序员——JAVA基础之List集合
  8. 【WCF--初入江湖】10 序列化和传输大型数据流
  9. HttpRuntime.Cache被清空的DataTable
  10. C++Primer学习笔记
  11. eclipse中 com.sun.image.codec.jpeg.JPEGCodec 无法编译通过问题
  12. C#调用C++动态库(dll)
  13. ZOJ 38727(贪心)
  14. 黑马程序员:Java基础总结----泛型(高级)
  15. json文件报expected name at 1 1错误
  16. drupal7为admin/config页面添加自己开发的模块
  17. 谈谈Session会话和Cookie
  18. 自制ZigBee协议分析仪
  19. Codeforces 1083E The Fair Nut and Rectangles
  20. 根据指定条件使CheckBox 无法选中

热门文章

  1. android菜鸟学习笔记6----android布局(一)
  2. 九度OJ 1030:毕业bg (01背包、DP)
  3. Complete space 完备空间与柯西序列 巴拿赫空间与完备空间 完备空间与和希尔伯特空间 封闭closed与完备性complete
  4. Cglib学习报错 java.lang.reflect.InvocationTargetException--&gt;null
  5. 剑指Offer:删除链表的节点【18】
  6. Kattis - cardhand Card Hand Sorting 【暴力枚举】
  7. WebsiteCrawler
  8. 如何浏览github上所有的公开的项目?
  9. 4.7 希尔(shell)排序法
  10. zoj 3813 Alternating Sum(2014ACMICPC Regional 牡丹江站网络赛 E)