c++多态性

简介:

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

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

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

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

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

 

虚函数和动态绑定

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

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

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





本文转自NewPanderKing51CTO博客,原文链接:http://www.cnblogs.com/newpanderking/p/3836955.html ,如需转载请自行联系原作者






相关文章
|
7月前
|
安全 编译器 C++
【C++20概念】编译时多态性的力量
【C++20概念】编译时多态性的力量
112 0
|
6月前
|
C++
C++:多态性
C++:多态性
32 2
|
7月前
|
设计模式 算法 编译器
C++中的多态性技术
C++中的多态性技术
|
7月前
|
Serverless C++
C++多态性、虚函数、纯虚函数和抽象类知识网络构造
C++多态性、虚函数、纯虚函数和抽象类知识网络构造
|
7月前
|
存储 C++
C++中的多态性
C++中的多态性
68 2
|
7月前
|
C++ 开发者
C++程序中利用虚函数实现动态多态性
C++程序中利用虚函数实现动态多态性
63 2
|
7月前
|
Serverless C++ 容器
【期末不挂科-C++考前速过系列P5】大二C++实验作业-多态性(3道代码题)【解析,注释】
【期末不挂科-C++考前速过系列P5】大二C++实验作业-多态性(3道代码题)【解析,注释】
|
7月前
|
编译器 C++
C++程序中的多态性
C++程序中的多态性
24 0
|
7月前
|
C++
C++|多态性与虚函数(2)|虚析构函数|重载函数|纯虚函数|抽象类
C++|多态性与虚函数(2)|虚析构函数|重载函数|纯虚函数|抽象类
|
7月前
|
存储 安全 C语言
C++|多态性与虚函数(1)功能绑定|向上转换类型|虚函数
C++|多态性与虚函数(1)功能绑定|向上转换类型|虚函数