免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: OwnWaterloo
打印 上一主题 下一主题

[C++] 堆栈是个什么鬼东西? 重载呢? [复制链接]

论坛徽章:
0
1 [报告]
发表于 2010-10-22 17:10 |显示全部楼层
无责任口胡:其实堆栈是“堆起来的栈”。233```
嘛,汉语博大精深...

论坛徽章:
0
2 [报告]
发表于 2010-10-22 17:14 |显示全部楼层
overload是编译时概念, override是运行时概念。
OwnWaterloo 发表于 2010-10-21 16:23


都是语言里面的概念……编译出目标代码后哪来的“运行时概念”?
应该是在说实现的方式吧。
中文确实很乱……- -

论坛徽章:
0
3 [报告]
发表于 2010-10-22 17:16 |显示全部楼层
堆和栈的数据结构是相同的,区别只是在一般情况下堆从低地址向高地址生长,栈从高地址向低地址生长。
marxn 发表于 2010-10-22 15:26


是在说ADT里面堆和栈是相同的还是栈和链表是相同的?
可能你的老师会哭……

论坛徽章:
0
4 [报告]
发表于 2010-10-22 17:26 |显示全部楼层
ADT::queue和ADT::stack确实经常放在一起讲。
不过一般内存里面heap区域是用ADT::List之类的实现吧。而stack区域还是用ADT::stack来实现。
无论说哪种堆和栈,“堆和栈的数据结构是相同的”都是有问题的吧?

论坛徽章:
0
5 [报告]
发表于 2010-10-23 12:14 |显示全部楼层
是不相同的。不过把链表和栈并列来讲是很怪,他们俩不是一个抽象层次的。
不过你是用来比拟系统中的堆 ...
davelv 发表于 2010-10-22 17:33


嗯,层次确实不同,不过应该还是属于一个范畴内的吧。我只是想说明那句结论本身有问题而已,所以直接并列讲了。

论坛徽章:
0
6 [报告]
发表于 2010-10-23 12:55 |显示全部楼层
回复  幻の上帝

措辞不当。

overload的影响在编译时决定, 不会拖到运行时。
override的影响在编译 ...
OwnWaterloo 发表于 2010-10-22 22:00



同意overload不对运行时有影响。
override当然会对运行时造成影响,但是我怀疑是否必须要有override这个概念来描述运行时行为。
在C++中,override是作用于一个或多个成员函数之间的概念。由于C++的目标程序不保存类层次结构这样完整的元信息,对于程序而言应该无法明确成员函数之间有什么关系,所能做的只是查vtable之类判断出一个使用动态绑定的调用具体应该使用哪个成员函数。运行时的override看来只是从语言引申出来的概念,而且,不是必要的(dynamic binding的意思已经够明确了),尽管有时候这样说会比较方便。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP