何时使用引用参数

使用引用参数的主要原因

  • 程序员能够在函数中修改调用函数参数中的数据对象
  • 通过传递引用而不是整个数据对象,可以提高程序的运行速度。尤其是当数据对象较大时,如结构和类对象。

对于使用传递的值而不作修改的函数:

  1. 如果数据对象较小,如内置数据类型或者小型结构,则按值传递。
  2. 如果数据对象是数组,则只能使用指针,并且将指针声明为指向const的指针。
  3. 如果数据对象较大,则使用const指针或者const引用,节省复制结构所需的时间和空间。
  4. 如果数据对象是类对象,则使用const引用。类设计的语义常常要求使用引用。这是C++增添引用这个特性的主要原因。

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

  1. 如果数据对象是内置数据类型,则使用指针。
  2. 如果数据对象是数组,则只能使用指针。
  3. 如果数据对象是结构,则使用引用或者指针。
  4. 如果数据对象是类对象,则使用引用。

使用引用参数,应尽可能使用const

  • 使用const可以避免无意中修改数据的编程错误。
  • 使用const使得函数能够处理const和非const实参。否则将只能接收非const数据。
  • 使用const引用使函数能够正确生成并使用临时变量。

继承的一个特征是,基类引用可以指向派生类对象,而无需进行强制类型转换。所以,在函数的引用参数设置时,可以定义一个接受基类引用作为参数的函数。调用函数时,可以将派生类对象作为实参。

将基类引用作为参数,编写函数中参数被用到的数据和特性,派生类必定全部都具有。所以派生类对象作为实参,只会使用或修改它从基类继承下来的特性。

而反过来,派生类有很多基类所不具有的特性,将基类对象作为实参,不能提供这些特性,函数无法正常运行。

posted @ 2014-01-19 11:22  而远之  阅读(1390)  评论(0编辑  收藏  举报