zoukankan      html  css  js  c++  java
  • c++多态性

    多态性(polymorphism)是指允许通一个函数(或是操作符)有不同版本,对于不同的对象执行不同的版本。c++支持一下两种多态

    (1)编译时的多态性,表现为函数名(或操作符)的重载。

    (2)运行时的多态性,表现为派生类和虚函数来实现。

    函数名重载:编译器能够比较具有同名函数的特征,通过识别实参的数目和每个实参的类型,来标识适用于一个特定调用的哪一个版本。

    操作符重载:可用同一个名字定义多种操作,这种能力叫做操作符重载。

    虚函数和动态绑定

    一个虚函数是一个在基类中被声明为“virtual”,并在一个或多个派生类中被重新定义的函数。如果在基类声明中,在一个函数的函数特征之前加一个关键字“virtual”,则编译器将建立一个可由运行环境解释的数据结构,并由程序执行时而不是编译时由运行环境来执行对这个函数的调用。

    一个抽象类必须作为基类而被其他类继承,抽象类自己不能生成实例,就是说不能由类生成对象,因为抽象类中至少有一个函数没有实现。如果一个基类中的某个函数声明为纯虚函数,则该基类的任何派生类都必须定义自己的实现。

    “virtural”指定实际调用的成员函数将是在运行时动态调用确定的,而不是在编译时确定的。这种做法叫做动态绑定(dynamic binding)。动态绑定在编译性面向对象语言中是为了支持所包含的多态性。

  • 相关阅读:
    Java基础技术多线程与并发面试【笔记】
    Java GC【笔记】
    Java JVM【笔记】
    Java基础技术JVM面试【笔记】
    Java HashSet和TreeSet【笔记】
    Java TreeMap 和 LinkedHashMap【笔记】
    Java HashMap【笔记】
    Java LinkedList【笔记】
    Java ArrayList【笔记】
    java基础技术集合面试【笔记】
  • 原文地址:https://www.cnblogs.com/newpanderking/p/3836955.html
Copyright © 2011-2022 走看看