课程
/后端开发
/C++
/C++远征之多态篇
既然virtual用处这么多,那么我们在所有继承的时候都采用虚继承来防止浪费空间,所有的类都采用虚析构函数来防止内存泄漏,所有符合的成员函数都采用虚函数来实现多态。是不是全都这样做最好呢?
2016-03-09
源自:C++远征之多态篇 2-5
正在回答
肯定不是这样的。
1、使用virtual会产生一个虚拟指针表,要维持这个表,便额外加大了系统的开销。
2、也不是所有的成员函数都需要实现多态的,总有些函数实现的功能意义时固定的,比如说加减乘除
3、虚继承无非是为了避免诸如菱形继承的情况,在我们构建类图的时候,就需要考虑到这些问题,如果能不用虚继承,就不用咯。
综上,应该是能不用就不用,C++就是以号称节省资源,运行效率高的。如果在写程序的时候,使得消耗过多的系统资源,便失去了这门语言高效的意义了。那还不如直接用一些新兴的语言如GO,SCALA之类的了。
qq_渴望六维空间_0 提问者
举报
本教程将带领大家体会面向对象三大特性中的多态特性