详细了解C++多态

本文详细介绍了C++中的多态性,包括静态多态和动态多态的概念及其区别。通过函数重载和模板实现的静态多态在编译期间确定函数调用,而动态多态依赖于虚函数,实现运行时多态性。重点讨论了虚函数、纯虚函数在多态中的作用,以及动态绑定的条件。文章还提醒了构造函数和析构函数的多态性特点,强调了抽象类和虚表在多态实现中的角色。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

什么是多态??

1.多态性(polymorphism)据说最早来自希腊语,从字面上理解就是多种形态,多种形式。具体到C++这种面向对象的语言(OOP)中,其实就是一种“接口”,多种实现(方法)

2.多态可以分为静多态和动多态,具体的分类如下

这里写图片描述

3.静多态和动多态的区别:

其实只是区别什么时间将函数实现和函数调用关联起来,是在编译期还是在运行期,即函数地址是在早绑定还是晚绑定的??

①静多态是指在编译期就可以确定函数的调用地址,并产生代码,这就是静态的,也就是说地址是早早绑定的,静多态往往也被叫做静态联翩。

②动多态则是指函数调用的地址不能在编译期间确定的,必须要在运行时才能确定,这就属于晚绑定,动多态往往也被叫做动态联翩。

4.具体实现

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

//两个函数构成重载的静多态

int add(int a,int b)
{
    return a + b;
}

double add(double a,double b)
{
    return a + b;
}

//构成函数重载的条件:相同函数名
//函数模板(泛型编程)
template <typename T>
//temolate<class T>
T add(T a,T b)
{
    return a + b;
}

多态存在的意义

C++中

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值