C++的多态性与绑定的关系

原创 2018年04月17日 16:31:58

函数被调用时,应该执行哪一段代码是由编译器在编译阶段就决定了的,编译时,编译器将所有对函数的调用都绑定到函数的代码入口地址处。这种绑定方式成为编译期绑定。

运行期绑定是直到程序运行之时,才将函数名称绑定到其入口地址。

如果对一个函数的绑定发生在运行时刻而不是编译时刻,我们称该函数是多态的。对于C++这样的混合语言,函数既可以是多态的,也可以是非多态的,这由绑定的时机是编译时刻还是运行时刻来决定。在C++中只有满足某些特定条件的成员函数才可能是多态的。

C++多态有以下三个前提条件:

1、必须存在一个继承体系结构

2、继承体系结构中的一些类必须具有同名的virtual成员函数

3、至少有一个基类类型的指针或基类类型的引用。这个指针或引用可用来对virtual成员函数进行调用。基类类型的指针可以指向任何基类对象或派生类对象。

还需要注意的是,当声明了基类的一个成员函数为虚函数后,那么即使该成员函数没有在派生类中被显式地声明为虚函数,它在所有派生类中也将自动成为虚函数。但如果不想回查派生类中的某函数在基类中是否为virtual。可以显式地将派生类中的函数声明为virtual。

c++之多态性(动态绑定)

多态性    指相同对象收到不同消息或不同对象收到相同消息时产生不同的实现动作。C++支持两种多态性:编译时多态性,运行时多态性。    a、编译时多态性:通过重载函数实现    b、运行时多态性:通...
  • mmshixing
  • mmshixing
  • 2016-05-11 11:39:26
  • 926

C++多态性(早期绑定、后期绑定)

编译时,多态性是通过重载函数与重载运算符实现的。运行时,多态性是通过使用继承和虚函数实现的。...
  • yanghangjun
  • yanghangjun
  • 2010-06-01 09:53:00
  • 1075

C++的多态与虚函数

多态的作用:继承是子类使用父类的方法,而多态则是父类使用子类的方法。 在C++中,多态有两种,一种是函数重载,一种是虚函数。函数重载发生在编译的时候,它的函数参是不一样的。而虚函数是发生在运行的时候,...
  • chencheng126
  • chencheng126
  • 2015-01-06 21:49:28
  • 1844

C++ 多态性有哪些

C++多态性有哪些?       概念:指相同的对象收到不同的消息或者不同的对象收到相同的消息时产生的不同的实现动作。 C++支持两种多态:编译时多态(静态)、运行时多态(动态) (1)编译时多态...
  • YF_Li123
  • YF_Li123
  • 2017-07-03 21:50:50
  • 3275

关于C++多态性的一些总结

在学习过程中对多态特性的实现方式及其实现原理的一些总结
  • Phoenix500526
  • Phoenix500526
  • 2015-03-31 07:59:49
  • 909

C++实验之多态性实验报告

  • 2009年05月26日 19:39
  • 62KB
  • 下载

重载和多态之间的关系?!(C++初学者)

重载和多态之间的关系!!!!   额呵呵,根本就没有关系!!! 重载就是重载!!我就是我,不一样的烟火!! 重载是指相同的函数名称,不同的参数类型或者参数个数不同的函数 在编译的时候,自动寻找相匹配的...
  • qq_25847123
  • qq_25847123
  • 2015-09-23 13:31:18
  • 1792

C++精髓之多态性与虚函数

面向对象程序设计中的多态性是指向不同的对象发送同一个消息,不同对象对应同一消息产生不同行为。在程序中消息就是调用函数,不同的行为就是指不同的实现方法,即执行不同的函数体。也可以这样说就是实现了“一个接...
  • yanghaitao_1990
  • yanghaitao_1990
  • 2016-06-04 15:37:37
  • 419

C++中多态性和重载

面向对象的三大特征: 1.封装:保证对象自身数据的完整性、安全性 2.继承:建立类之间的关系,实现代码复用、方便系统的扩展 3.多态:相同的方法调用可实现不同的实现方式。多态是指两个...
  • shujun19941226
  • shujun19941226
  • 2016-03-10 19:37:22
  • 957

C++多态性与虚函数理解

《Effective C++》一书中第七条:Declare destructors virtual in polymorphic base classes 用于多态的基类中的析构函数应该声明为虚函数。...
  • King_DJF
  • King_DJF
  • 2017-03-20 15:27:12
  • 341
收藏助手
不良信息举报
您举报文章:C++的多态性与绑定的关系
举报原因:
原因补充:

(最多只允许输入30个字)