为了账号安全,请及时绑定邮箱和手机立即绑定

是不是所有的可能需要的情况都加上virtual更好呢?

既然virtual用处这么多,那么我们在所有继承的时候都采用虚继承来防止浪费空间,所有的类都采用虚析构函数来防止内存泄漏,所有符合的成员函数都采用虚函数来实现多态。是不是全都这样做最好呢?

正在回答

1 回答

肯定不是这样的。

1、使用virtual会产生一个虚拟指针表,要维持这个表,便额外加大了系统的开销。

2、也不是所有的成员函数都需要实现多态的,总有些函数实现的功能意义时固定的,比如说加减乘除

3、虚继承无非是为了避免诸如菱形继承的情况,在我们构建类图的时候,就需要考虑到这些问题,如果能不用虚继承,就不用咯。

综上,应该是能不用就不用,C++就是以号称节省资源,运行效率高的。如果在写程序的时候,使得消耗过多的系统资源,便失去了这门语言高效的意义了。那还不如直接用一些新兴的语言如GO,SCALA之类的了。

4 回复 有任何疑惑可以回复我~
#1

qq_渴望六维空间_0 提问者

非常感谢!
2016-03-10 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C++远征之多态篇
  • 参与学习       66236    人
  • 解答问题       314    个

本教程将带领大家体会面向对象三大特性中的多态特性

进入课程

是不是所有的可能需要的情况都加上virtual更好呢?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信