如果一个类中存在大量的虚函数,会造成什么样的结果?C++的思考题2

ltolll 2008-09-21 11:58:38
如题
...全文
669 30 打赏 收藏 转发到动态 举报
写回复
用AI写文章
30 条回复
切换为时间正序
请发表友善的回复…
发表回复
SeanHwang 2008-09-23
  • 打赏
  • 举报
回复
那么类的虚函数表会很大~
SeanHwang 2008-09-23
  • 打赏
  • 举报
回复
那么类的虚函数表会很大~
mxm324 2008-09-23
  • 打赏
  • 举报
回复
哥们难道用的是586
qhfu 2008-09-23
  • 打赏
  • 举报
回复
多少叫大量,几个?是相对非虚函数比较呢?还是绝对数量?

虚函数意味着要被继承, 虚函数多一般是一个接口想表达的 事情太多, 可以考虑分离接口
晨星 2008-09-23
  • 打赏
  • 举报
回复
up一下taodm。
这个问题对于编译器的测试人员或许有点意义,但对于一般的开发人员意义不大。
大多数情况下,一个类中的虚函数超过10个,就该停下来考虑一下是不是需要重构了,怎么会让它多到足以影响性能?
晨星 2008-09-22
  • 打赏
  • 举报
回复
如果一个程序中包含太多语句,结果会怎样?
blue_csharp 2008-09-22
  • 打赏
  • 举报
回复
效率效率。。有时候真搞不懂在硬件高速发展的今天,为了一个语句或者一个指令的效率讨论半天有什么意义,关键问题是:有公司为为你的这种精神劳动给薪水?想想吧,二十年多前美国普通程序员的平均时薪就在80美元左右。想想你现在的工资吧,有几人能达到这个标准?难道中国人写的代码就是烂?
wzyzb 2008-09-22
  • 打赏
  • 举报
回复
MARK
mars_man 2008-09-22
  • 打赏
  • 举报
回复
搞点内存吧,现在便宜得没得说了。
至于执行效率与数量到是没有直接的关系,与系统cache缓存等有关罢了。

对于上面哪楼的:int a[100], a[0]和a[100]效率不同这种说法不敢苟同,都是通过基址+偏移量的方法来获取地址。
按照那位兄台的说法,莫非 x + 0 和 x + 1234 在时间上有多少的差别?
llaaddoo 2008-09-22
  • 打赏
  • 举报
回复
虚函数是用内存换速度~~
基本上不存在执行效率问题~~
delphi的vcl大量使用了虚函数和动态函数~~~
很多c++的gui库也大量使用虚函数~~~
都没见慢到那里去~~
在这个地方扣效率没太大意义~~
matrixdwy 2008-09-22
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 ForestDB 的回复:]
还是得说句:效率。
这个问题最典型的设计就是GUI系统,GUI系统是最好表现虚函数作用的,但正是因为效率,MFC用了难看的macro,而C++Builder也对C++进行了私有扩展,以避开虚函数。
其他的GUI框架也或多或少的采用这样那样的技术,以避开虚函数的效率问题。
[/Quote]
ZC
kkndciapp 2008-09-22
  • 打赏
  • 举报
回复
vtable大了,查找效率会下降
wudeshou82666 2008-09-22
  • 打赏
  • 举报
回复
学习 了
呵呵
其实到底谁说得有理我也不是很清楚
taodm 2008-09-22
  • 打赏
  • 举报
回复
一个class含有大量的函数的时候就已经被称为“垃圾堆”了,更别论大量虚函数。
有空看看《重构:改善既有代码的设计》-“代码的坏味道”吧。
blackcat242 2008-09-22
  • 打赏
  • 举报
回复
虚表大点呗,没啥效率影响,搜索一个表的效率跟其他相比,微乎其微
rosky 2008-09-22
  • 打赏
  • 举报
回复
虚函数的效率问题,值得考虑啊
虚表,虚指针指向虚表
ForestDB 2008-09-22
  • 打赏
  • 举报
回复
还是得说句:效率。
这个问题最典型的设计就是GUI系统,GUI系统是最好表现虚函数作用的,但正是因为效率,MFC用了难看的macro,而C++Builder也对C++进行了私有扩展,以避开虚函数。
其他的GUI框架也或多或少的采用这样那样的技术,以避开虚函数的效率问题。
zhangzhao123 2008-09-22
  • 打赏
  • 举报
回复
是会影响到效率问题!
ysuliu 2008-09-22
  • 打赏
  • 举报
回复
有多大量?比中国人还多??那我没话说。。。
大写的池 2008-09-21
  • 打赏
  • 举报
回复
...!!! 现在内存都快趋于无穷了
加载更多回复(10)

64,643

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧