C++面向对象
继承、多态、虚函数等
RZWDCH
这个作者很懒,什么都没留下…
展开
-
多态的类,内存布局情况
文章目录(1)虚继承:(2)多重继承:(3)普通继承(含有:空类、虚函数)(4)虚继承(多重继承和虚函数)(5)虚继承与虚函数小结关于类的内存布局主要是考某个类所占用的内存大小,以下通过几个案例加以分析(1)虚继承:如果是虚继承,那么就会为这个类创建一个虚表指针,占用4个字节(2)多重继承:如果是以虚继承实现多重继承,记得减掉基类的副本(3)普通继承(含有:空类、虚函数)(4)虚继承(多重继承和虚函数)前辈总结说:如果不是虚继承的类,即便有虚函数也不会因此增加存储空间,如果是虚继承的原创 2021-06-15 22:16:21 · 365 阅读 · 0 评论 -
继承和虚继承
因为C++支持多重继承,那么在这种情况下会出现重复的基类这种情况,也就是说可能出现将一个类两次作为基类的可能性。比如像下面的情况为了节省内存空间,可以将DeriverdA、DeriverdB对Base的继承定义为虚拟继承,而A就成了虚拟基类。实现的代码如下:虚拟继承在一般的应用中很少用到,所以也往往被忽视,这也主要是因为在C++中,多重继承是不推荐的,也并不常用,而一旦离开了多重继承,虚拟继承就完全失去了存在的必要因为这样只会降低效率和占用更多的空间。注意:不要全部都使用虚继承,因为虚继承会破坏继原创 2021-06-15 12:40:57 · 194 阅读 · 0 评论