关于C++中的多态

本文详细解析 C++ 中的多态概念,包括静态多态(如模板、函数重载和运算符重载)和动态多态(通过虚函数实现的覆盖)。文中还对比了覆盖、隐藏与重载之间的区别。

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

参考:

总结多态的重点

http://blog.youkuaiyun.com/u010885095/article/details/9046411

浅谈C++多态性

http://blog.youkuaiyun.com/hackbuteer1/article/details/7475622


函数名联编:将源代码中的函数调用解释为执行特定函数代码块

静态联编:在编译过程中的联编

动态联编:在程序运行过程中的联编


多态分为静态多态和动态多态。


静态多态包括:

模板,函数名重载,运算符重载

显然都为静态联编


动态多态只有一种:

覆盖

为动态联编


覆盖只发生在:在派生类中重写基类的虚函数,该函数会继承virtual这个属性,不论在定义时有没有加入virtual关键字,并且由于使用了函数名,会导致基类中的同名函数被隐藏。如果想要取消隐藏,可以用如下语句:

using 基类::函数名;


覆盖,隐藏,函数名重载这些概念之间完全没有联系,一定要弄清楚。


覆盖特指派生类重写基类虚(强调)函数


隐藏是指外部名称与内部名称相同时,外部名称对内部不可见。当然也可以发生在类继承的时候。


函数名重载是指同一个类中,函数名由于特征标不同,可以分别定义和调用





评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值