正在加载……
专注、离线、切勿分心
多态:     
      ★ 多态性是面向对象设计语言的基本特征之一。仅仅是将数据和函数捆绑在一起,进行类的封装,使用一些简单的继承,还不能算是真正应用了面向对象的设计思想。多态性是面向对象的精髓。多态性可以简单地概括为“一个接口,多种方法”,前面讲过的函数重载就是一种简单的多态,一个函数名(调用接口)对应着几个不同的函数原型(方法)。

      ★ 通常是指对于同一个消息、同一种调用,在不同的场合,不同的情况下,执行不同的行为

设计多态的主要目的是定义好一个祖先类,并定义一些虚函数(接口),但在这个接口函数中并不给出具体的实现,或者只是一些简单的实现,这个工作留给后代去具体实现。



多态与虚函数:
      ★多态性是指同一个操作作用于不同的对象就会产生不同的响应;多态性分为静态多态性动态多态性,其中函数重载运算符重载属于静态多态性, 虚函数属于动态多态性。



静态联编(静态绑定):
      ★程序调用函数时,具体应使用哪个代码块是由编译器决定的。以函数重载为例,C++编译器根据传递给函数的参数和函数名决定具体要使用哪一个函数,称为联编(binding)
      ★编译器可以在编译过程中完成这种联编,在编译过程中进行的联编叫静态联编(static binding)早期联编(early binding)



动态联编:
       在一些场合下,编译器无法在编译过程中完成联编,必须在程序运行时完成选择,因此编译器必须提供这么一套称为“动态联编(dynamic binding)的机制,也叫晚期联编(late binding)C++通过虚函数来实现动态联编





posted on 2018-07-25 08:52  正在加载……  阅读(211)  评论(0编辑  收藏  举报