函数重载(function overloading)和C++中的重写(overriding in c++)的区别

C++中函数重载与重写的关键区别在于C++中的函数重载是编译时多态性,而C++中的重写是运行时多态性。...

C++中函数重载与重写的关键区别在于C++中的函数重载是编译时多态性,而C++中的重写是运行时多态性。

函数重载(function overloading)和C++中的重写(overriding in c++)的区别

对多个窗体和类型使用一个名称称为多态性。多态性是面向对象编程中最重要的概念之一。实现多态性的方法有很多,包括函数重载、重写和虚函数。C++中的函数重载是编译时多态性,而C++中的重写是运行时多态性。

重载是编译时多态性。重载为多个方法提供了一个公共接口。重载意味着代码在重新定义时包含相同的函数名。重载使一个重载函数与另一个函数不同。重载函数有不同的参数。

运行时多态性称为重写。重写是通过使用虚函数关键字来实现的。这个关键字在基类中使用。当派生类重新定义函数时,不能更改重写的函数。C++中的重写决定了调用函数的哪个版本。

对比图

基础 超载 覆盖
意义 C++中函数重载是编译时多态性 C++中的函数重写是运行时多态性。
关键字 重载中有一个特定的关键字 “Virtual”是函数重写中的一个特定关键字。
成就 在重载函数中,有编译时完成。 在函数重写中,有一个运行时完成。
结合 在函数重载中,存在早期绑定 在函数重写中,存在延迟绑定

超载

重载是编译时多态性。重载为多个方法提供了一个公共接口。重载意味着代码在重新定义时包含相同的函数名。重载使一个重载函数与另一个函数不同。重载函数有不同的参数。

覆盖

运行时多态性称为重写。重写是通过使用虚函数关键字来实现的。这个关键字在基类中使用。当派生类重新定义函数时,不能更改重写的函数。C++中的重写决定了调用函数的哪个版本。

函数间重载(between function overloading)和C++中的重写(overriding in c++)的区别

  1. C++中函数重载是编译时多态性,而C++中的函数重写是运行时
  2. 重载中有一个特定的关键字,而“Virtual”是函数重写中的一个特定关键字。
  3. 在重载函数中,有编译时完成,而在函数重写中有运行时完成
  4. 在函数重载中有早期绑定,而在函数重写中有后期绑定

结论

在上面的这篇文章中,我们通过示例看到了函数重载和函数重写之间的明显区别。

解说视频

  • 发表于 2021-07-08 11:14
  • 阅读 ( 338 )
  • 分类:IT

你可能感兴趣的文章

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

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

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

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

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

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

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

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

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

马洛克(malloc)和新的(new)的区别

...存在Maloc,而新是C++语言的一个特定特征。Malloc也是一个函数(对于程序员来说,它需要一些时间来执行),而new是一个操作符程序(它缩短了执行时间)。这是new操作符的一个好处,因为进行实时编程的程序员需要选择最快的...

  • 发布于 2021-06-23 19:10
  • 阅读 ( 193 )

C++(c++)和JAVA(java)的区别

...种语言允许动态内存分配。程序员可以通过调用free()函数来释放分配的内存。此外,还可以实现诸如多线程之类的高级概念。 什么是JAVA(java)? Sun Microsystems在James Gosling的倡议下开发了Java。Java作为一种高级编程语言,允许开...

  • 发布于 2021-07-01 07:51
  • 阅读 ( 332 )

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

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

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

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

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

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

C(c)和C++(c++)的区别

...化编程语言。因此,它具有循环(for、while、do-while)、函数、决策(if/else)等特性。 C是其他现代语言(如Python、Java、Perl和Ruby)的基础。C程序执行速度更快,因为它们使用编译器将源代码转换为等效的机器代码。此外,它还...

  • 发布于 2021-07-01 12:20
  • 阅读 ( 229 )

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

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

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

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

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

  • 发布于 2021-07-08 11:10
  • 阅读 ( 497 )
毛球爱的毛线
毛球爱的毛线

0 篇文章

相关推荐