zoukankan      html  css  js  c++  java
  • 何时使用引用参数

    使用引用参数的主要原因

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

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

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

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

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

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

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

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

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

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

  • 相关阅读:
    [BZOJ1222/Luogu2224][HNOI2001]产品加工
    [BZOJ1079/Luogu2476][SCOI2008]着色方案
    [BZOJ3098]Hash Killer II
    [BZOJ1818][CQOI2010]内部白点
    [BZOJ1497/Luogu4174][NOI2006]最大获利
    [BZOJ2330/Luogu3275][SCOI2011]糖果
    [BZOJ1208/Luogu2286][HNOI2004]宠物收养场
    [BZOJ1054/Luogu4289][HAOI2008]移动玩具
    Com组件介绍
    webBrowse官方说明
  • 原文地址:https://www.cnblogs.com/xyqhello/p/3525797.html
Copyright © 2011-2022 走看看