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

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

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

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

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

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

    虚函数和动态绑定

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

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

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

  • 相关阅读:
    svn cleanup failed–previous operation has not finished 解决方法
    开源SNS社区系统推荐
    从网络获取图片本地保存
    MS SQL Server 数据库连接字符串
    KeepAlive
    Configure Git in debian
    sqlserver query time
    RPi Text to Speech (Speech Synthesis)
    SQL Joins with C# LINQ
    search or reseed identity columns in sqlserver 2008
  • 原文地址:https://www.cnblogs.com/newpanderking/p/3836955.html
Copyright © 2011-2022 走看看