C++多态如何理解?实现多态性呢?多态性的作用呢?

本文介绍了C++中的多态性概念,解释了如何通过虚函数实现多态性,并区分了重载与重写的区别。重点讲解了重写作为真正意义上的多态是如何工作的。

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

C++多态性:
简单理解“一个接口,多种方法”。“允许将派生类类型的指针赋值给基类类型的指针”
将基类指针指向派生类对象,通过基类指针调用派生类的成员函数来执行不同的操作。

C++多态性的实现方法:
C++多态性是通过虚函数实现的。虚函数允许子类重新定义基类的成员函数。
实现方法有两种:重载和重写(也称覆盖)

如果你想学习C/C++可以来这个群,首先是三三零,中间是八五九,最后是七六六,里面有大量的学习资料可以下载。

重载:简单理解就是在C++类中允许存在多个同名同返回值类型的函数,这些函数的参数列表不同、参数类型不同或者两者都不同。
重载不是多态。(在编译期间,编译器会根据函数不同的参数列表、参数类型,对同名函数生产一系列不同名称的预处理函数,来实现同名函数调用时的重载问题。也就是说它们的地址在编译期间就已经绑定了(早绑定),是静态的。)
重写(覆盖):虚函数实现的,在派生类中重新定义基类的做法。派生类中重新定义基类的虚函数后,基类指针根据赋值给它的不同子类派生类指针,动态的调用相应派生类的成员函数。它们的地址在编译期间不能被确定(编译期间派生类的虚函数地址无法确定),所以它们的地址是程序运行期间绑定的(晚绑定)。所以说重写才是真正意义上的多态。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值