什么是函数重载?(function overloading?)

函数重载是许多编程语言的一项功能,在这些语言中,可以使用相同的名称创建多个方法,但使用不同的输入参数或返回类型。这是面向对象编程的一个常见特性;构造函数尤其可能具有多个不同的重载变量。从本质上讲,当两个函数执行非常相似的操作并且可以使用多种类型的输入来执行时,函数重载非常有用。构造函数很容易重载,因为它们没有指定显式的返回类型,所以简单地更改构造函数的输入参数就是有效的重载。...

函数重载是许多编程语言的一项功能,在这些语言中,可以使用相同的名称创建多个方法,但使用不同的输入参数或返回类型。这是面向对象编程的一个常见特性;构造函数尤其可能具有多个不同的重载变量。从本质上讲,当两个函数执行非常相似的操作并且可以使用多种类型的输入来执行时,函数重载非常有用。构造函数很容易重载,因为它们没有指定显式的返回类型,所以简单地更改构造函数的输入参数就是有效的重载。

In object-oriented computer programming, when two or more functions share the same name but have different parameters it is called function overloading.

函数重载的第一种方法是更改其输入参数。例如,可以考虑一个称为“Add”的函数,它的输入是两个整数。这个功能的目的是相当明显的;它的意思是求两个整数的和。

但是,如果要求两个浮点数之和或十进制数,则此函数不适用。因此,第二个重载函数是必需的,它被定义为一个名为“add”的函数,它将两个浮点值作为输入。函数基本上做相同的事情,但是函数重载是必要的,因为它们的输入有很大的不同。

重载函数的第二种方法是更改其输入参数和返回类型。使用前面的示例,可以考虑两个重载的“添加”函数是否具有空返回类型;也就是说,他们什么也没有返回。这仍然是有效的函数重载,但这两个方法的返回类型也可以更改。在另一个有效的重载实例中,接受两个整数的“add”函数可以返回该整数和,接受两个十进制数的“add”函数可以返回该十进制数和。

然而,仅仅更改函数的返回类型并不被认为是有效的函数重载。只更改函数的返回类型会导致歧义,因为从方法签名中不清楚需要哪种返回类型。参数也可以定义模糊,因此正确调用重载函数非常重要。例如,如果一个重载函数的输入参数为整数,另一个重载函数的参数为十进制数,则很容易有人意外调用十进制数函数而不是整数函数,反之亦然,因为它们具有相同的名称。如有可能,应避免此类不明确的参数,如果不能避免,则应特别注意确保在适当的时间调用适当的重载函数。

函数重载对于创建具有各种输入类型的相关函数非常有用,它为代码提供了很大的灵活性。关于重载函数的最后一个考虑是,充分的注释是必不可少的。虽然通过不同的输入参数可以清楚地知道重载函数的哪个版本适合于特定情况,但可能并不总是清楚该函数与其他重载伙伴的不同之处。

  • 发表于 2021-12-13 16:36
  • 阅读 ( 140 )
  • 分类:互联网

你可能感兴趣的文章

压倒一切(overriding)和c中的过载#(overloading in c#)的区别

...将全部打印Shape类的显示方法的内容。 什么是c中的过载#(overloading in c#)? 在重载中,多个方法具有相同的名称,但具有不同的参数。参数可以是不同类型的。这些方法也可以有不同数量的参数。方法重载发生在同一个类中。重...

  • 发布于 2020-10-18 23:50
  • 阅读 ( 217 )

功能原型(function prototype)和c语言中的函数定义(function definition in c)的区别

...函数定义的表格形式 6. 摘要 什么是c语言中的函数原型(function prototype in c)? 函数原型提供函数声明。它指定函数的名称、返回类型、参数。返回类型是从函数返回的数据类型。当函数返回整数时,返回类型为int;当函数返回floa...

  • 发布于 2020-10-19 16:08
  • 阅读 ( 755 )

超载(overloading)和在java中重写(overriding in java)的区别

...表格形式在Java中重载与重写 6. 摘要 什么是java中的重载(overloading in java)? 重载是使用不同的实现创建同名的多个方法的能力。请参阅下面的Java代码。 图01:Java程序,解释使用不同数量的参数重载 根据上面的程序,类A包含两个...

  • 发布于 2020-10-19 21:20
  • 阅读 ( 366 )

状态函数(state function)和路径函数(path function)的区别

状态函数(state function)和路径函数(path function)的区别 热力学是物理化学的一个重要分支,它揭示了不同形式的能量和功之间的热化学关系。有四个热力学定律用于描述热力学系统的行为。状态函数和路径函数是表示系统不同热...

  • 发布于 2020-10-24 02:43
  • 阅读 ( 1418 )

超载(overloading)和覆盖(overriding)的区别

过载与覆盖 重载和重写都是大多数编程语言的特性。重载是一种特性,它允许在同一个类中创建几个具有相同名称的方法,但在函数的输入类型和输出类型方面彼此不同。方法重载通常与在函数调用中强制类型检查的静态编程...

  • 发布于 2021-06-23 10:08
  • 阅读 ( 179 )

静止的(static)和C++中的常量函数(constant function in c++)的区别

... 静态函数,常数函数,C++ 什么是C++中的静态函数(static function in c++)? 用static关键字定义的函数是静态函数。通常,函数处理对象。程序员使用对象来调用这些函数。但是,它在静态函数中是不同的。它们在类级别工作,而不...

  • 发布于 2021-07-01 09:34
  • 阅读 ( 278 )

友元函数(friend function)和C++中的正规函数(normal function in c++)的区别

...C++,Fuffic函数,正规函数 什么是C++中的Fuffic函数(friend function in c++)? 类中可以有私有和受保护的数据成员。不可能访问类外的私有数据成员。我们可以通过类及其子类访问受保护的成员。因此,这两个访问修饰符限制对数据成...

  • 发布于 2021-07-01 11:43
  • 阅读 ( 256 )

函数声明(function declaration)和c程序设计中的函数定义(function definition in c programming)的区别

...,函数声明,函数定义 什么是c程序设计中的函数声明(function declaration in c programming)? 函数声明指示编译器关于特定函数的信息。语法如下。 返回\类型函数\名称(参数列表); 函数名有助于识别函数。参数列表包含传递给函...

  • 发布于 2021-07-01 13:49
  • 阅读 ( 359 )

虚函数(virtual function)和纯虚函数(pure virtual function)的区别

...术语 面向对象,纯虚函数,虚函数 什么是虚函数(virtual function)? 虚函数是基类中带有virtual关键字的函数。它有助于指示编译器,当子类也具有与其他实现相同的方法时,不应存在静态链接。参考下面的程序更容易理解这个概...

  • 发布于 2021-07-01 14:13
  • 阅读 ( 486 )

继承(inheritance)和多态性(polymorphism)的区别

...继承和多态性的区别在于,计算机科学中的继承是从现有函数创建一个新类,而多态性是多种形式的公共接口。 如果你想学习编码和编程,你必须学习计算机科学中的继承和多态性的概念。你可以通过继承的方法再次使用一个...

  • 发布于 2021-07-08 11:10
  • 阅读 ( 501 )
ebvqjwgzit
ebvqjwgzit

0 篇文章

相关推荐