• 函数重载与默认参数


    函数重载

    为什么需要函数重载?

      在开发过程中,有时候需要实现几个功能类似的函数,只是细节有所不同
      如交换两个变量的值,变量的类型有很多,在C语言中,必须要设计不同名的函数,但在C++中完全没有必要
      C++允许多个函数拥有相同的名字,只要它们的参数列表不同即可,这就是函数重载
    

    函数重载的定义

      函数重载是指在同一作用域内,可以有一组具有相同函数名,不同参数列表的函数,这组函数被称为重载函数。
      重载函数通常用来命名一组功能相似的函数,这样做减少了函数名的数量,避免了名字空间的污染,对于程序的可读性有很大的好处。
    

    函数重载的规则

      - 函数名称必须相同
      - 参数列表必须不同(参数的类型不同、个数不同、顺序不同)
      - 函数的返回类型可以相同可以不同
      - 仅仅返回类型不同不足以成为函数的重载
    

    函数重载的原理与步骤

      原理:函数重载的原理叫名字改编
      步骤:当函数名字相同的时候,根据函数参数列表不一样,对函数名字进行改编。
            改编的时候,根据参数的个数、参数顺序、参数类型进行改编。
    

    默认参数

    默认参数的目的

      C++可以给函数定义默认参数值
      通常,调用函数时,要为函数的每个参数给定对应的实参,但C++可以给参数定义默认值,这样在调用函数时,就可以减少传参的个数
      允许函数设置默认参数值,是为了让编程简单,让编译器做更多的检查错误工作。
    

    默认参数的声明

      一般默认参数在函数声明中提供。
      当一个函数既有声明又有定义时,只需要在其中一个中设置默认值即可。
      若在定义时而不是在声明时置默认值,那么函数定义一定要在函数的调用之前。
      因为声明时已经给编译器一个该函数的向导,所以只在定义时设默认值时,编译器只有检查到定义时才知道函数使用了默认值。
      若先调用后定义,在调用时编译器并不知道哪个参数设了默认值。
      所以我们通常是将默认值的设置放在声明中而不是定义中。
    

    默认参数的顺序规定

      - 如果一个函数中有多个默认参数,则形参分布中,默认参数应从右至左逐渐定义。当调用函数时,只能向左匹配参数。
      - 若给某一参数设置了默认值,那么在参数表中其后所有的参数都必须也设置默认值,否则,由于函数调用时可不列出已设置默认值的参数,编译器无法判断在调用时是否有参数遗漏。
    

    默认参数与函数重载

      - 默认参数可以将一系列简单的重载函数合成一个
      - 如果一组重载函数(可能带有默认参数)都允许相同实参个数的调用,将会引起调用的二义性,所以在函数重载时,要谨慎使用默认参数
    
  • 相关阅读:
    Java序列化原理
    分库分表
    数据库索引
    监听TCP端口号:从简单Socket到NIO到Netty
    如何保证缓存与数据库的双写一致性
    代理模式:静态代理、JDK动态代理、Cglib动态代理
    Redis发布订阅(Pub-Sub)模式
    Redis分片机制(Sharding)
    Redis高可用性:主从、哨兵和集群
    Redis简介
  • 原文地址:https://www.cnblogs.com/xkyrl/p/14663543.html
Copyright © 2020-2023  润新知