zoukankan      html  css  js  c++  java
  • 多态概念,C++

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

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

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



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



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



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





  • 相关阅读:
    洛谷P2878 [USACO07JAN]保护花朵Protecting the Flowers
    洛谷P2434 [SDOI2005]区间
    洛谷 P2701 [USACO5.3]巨大的牛棚Big Barn
    洛谷 P2904 [USACO08MAR]跨河River Crossing
    Again Stone Game
    Crazy Calendar (阶梯博弈变形)
    (2017浙江省赛E)Seven Segment Display
    ZOJ 3705 Applications
    D
    The Suspects(并查集维护根节点信息)
  • 原文地址:https://www.cnblogs.com/meihao1203/p/9363960.html
Copyright © 2011-2022 走看看