189 8069 5689

详解C++多态的两种形式(静态、动态)-创新互联

1.多态的概念与分类

创新互联主要从事网站制作、成都网站制作、网页设计、企业做网站、公司建网站等业务。立足成都服务武川,十载网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18980820575

多态(Polymorphisn)是面向对象程序设计(OOP)的一个重要特征。多态字面意思为多种状态。在面向对象语言中,一个接口,多种实现即为多态。C++中的多态性具体体现在编译和运行两个阶段。编译时多态是静态多态,在编译时就可以确定使用的接口。运行时多态是动态多态,具体引用的接口在运行时才能确定。

详解C++ 多态的两种形式(静态、动态)

静态多态和动态多态的区别其实只是在什么时候将函数实现和函数调用关联起来,是在编译时期还是运行时期,即函数地址是早绑定还是晚绑定的。静态多态是指在编译期间就可以确定函数的调用地址,并生产代码,这就是静态的,也就是说地址是早绑定。静态多态往往也被叫做静态联编。 动态多态则是指函数调用的地址不能在编译器期间确定,需要在运行时确定,属于晚绑定,动态多态往往也被叫做动态联编。

2.多态的作用

为何要使用多态呢?封装可以使得代码模块化,继承可以扩展已存在的代码,他们的目的都是为了代码重用。而多态的目的则是为了接口重用。静态多态,将同一个接口进行不同的实现,根据传入不同的参数(个数或类型不同)调用不同的实现。动态多态,则不论传递过来的哪个类的对象,函数都能够通过同一个接口调用到各自对象实现的方法。

3.静态多态

静态多态往往通过函数重载和模版(泛型编程)来实现,具体可见下面代码:

#include 
using namespace std;

//两个函数构成重载
int add(int a, int b)
{
  cout<<"in add_int_int()"<
T add(T a, T b)
{
  cout<<"in func tempalte"<('A',' ')<            
本文标题:详解C++多态的两种形式(静态、动态)-创新互联
网站路径:http://cdxtjz.cn/article/pdiei.html

其他资讯