C++拾遗(三)——函数

函数的定义

  • C++是一种静态强类型语言,对于每一次的函数调用,编译时都会检查其实参,必须与形参类型相同,或可被转换为该类型。

参数传递

  • 普通的非引用类型的参数通过复制对应的实参实现初始化。引用形参直接关联到绑定的对象,而非这些对象的副本。
  • 引用形参的另一种用法是向主调函数返回额外的结果(当一个返回值不够时)。
  • 在向函数传递大型对象时,需要使用引用形参,以避免复制操作:此时应将形参定义为const引用。
  • 注意到,当返回引用时,千万不能返回局部变量的引用。同时,也不能返回指向局部对象的指针。

内联函数

  • 将函数定义为内联函数,就是将它在程序中每个调用点上“内联地”展开,以避免函数调用的开销。
  • 内联函数应在头文件中定义。其定义可以出现不止一次,只要在某个源文件中只出现一次且在所有文件中完全相同。

重载函数

  • 函数不能仅仅基于不同的返回类型而实现重载。仅当形参时引用或指针时,形参是否为const才有影响。
  • 函数的重载确定分为三个步骤:候选函数,选择可行函数,寻找最佳匹配。
  • 为了确定最佳匹配,编译器将实参类型到相应形参类型的转换划分等级,以降序排列:精确匹配,通过类型提升实现的匹配,通过标准转换实现的匹配,通过类类型转换实现的匹配。
原文地址:https://www.cnblogs.com/huashu/p/4263439.html