返回信息流有的书上说重载不属于“面向对象编程”。只是一种语言特性与多态无关与面向对象无关。
网上说重载与覆盖是Java 实现多态两种方式。
这怎么解释比较好呢?
这是一条镜像帖。来源:北邮人论坛 / cpp / #16287同步于 2008/11/19
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
重载到底是语言特征还是面向对象的一种多态呢?
lodas
2008/11/19镜像同步12 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
...不会java,但是就编译器一层来说,c++里处理重载的函数和多态是木有关系的,完全靠的是链接之后的名称来区别
而且c++ primer里我记得也说过如果重载和虚函数override一起出现会怎么样处理
第一种.
【 在 lodas (banlist 常客) 的大作中提到: 】
: 有的书上说重载不属于“面向对象编程”。只是一种语言特性与多态无关与面向对象无关。
: 网上说重载与覆盖是Java 实现多态两种方式。
: 这怎么解释比较好呢?
: ...................
老帖,我说下我理解,欢迎拍砖:
多态有两种:静态多态和动态多态
函数重载就是一种静态多态,在编译期间就决定了这个函数的行为。
动态多态在C++中就是通过虚函数实现的,我们平时讲的多态多半就是指动态多态。。。
【 在 lodas 的大作中提到: 】
: 有的书上说重载不属于“面向对象编程”。只是一种语言特性与多态无关与面向对象无关。
: 网上说重载与覆盖是Java 实现多态两种方式。
: 这怎么解释比较好呢?
没有静态动态和动态的说法。。
重载是静态绑定
多态是动态绑定
重载是语言特征,毕竟能不能重载和类没有关系啊。。。
重载在链接的时候靠函数名与参数特征区分,C语言里只靠函数名区分
所以在重载函数的时候,候选函数集只能声明一个extern "C"的函数
【 在 zieckey 的大作中提到: 】
: 老帖,我说下我理解,欢迎拍砖:
: 多态有两种:静态多态和动态多态
: 函数重载就是一种静态多态,在编译期间就决定了这个函数的行为。
: ...................
没有重载的后果:
1 针对一种类型,你需要起一个函数名,你累不累啊?用户也用得很累。这一点,C语音通过缺省参数来解决。
2 在使用STL的排序函数的时候,你需要重载operator <.
你说a<b直观,还是a.compare(b)直观阿。。
【 在 pmps 的大作中提到: 】
: 其实函数重载没什么用,不支持重载的换一个函数名就行了。。。
zan
【 在 HyMu 的大作中提到: 】
: 没有静态动态和动态的说法。。
: 重载是静态绑定
: 多态是动态绑定
: ...................
个人感觉函数重载作用不大,但你说的第二个操作符重载,很有用的说
【 在 HyMu (~~~) 的大作中提到: 】
: 没有重载的后果:
: 1 针对一种类型,你需要起一个函数名,你累不累啊?用户也用得很累。这一点,C语音通过缺省参数来解决。
: 2 在使用STL的排序函数的时候,你需要重载operator <.
: ...................