C++ 类继承/虚继承/多重继承
来源:互联网 发布:最新的网络歌曲 编辑:程序博客网 时间:2024/04/30 21:49
C++ 中的多重继承,所涉及的类的大小
这里的结构 :
T
/ \
T1 T2
\ /
T3
class T{public:void dis(){}public:int m;};class T1:public T{public:int m1;};class T2 :public T{public:int m2;};class T3 :public T1,public T2{public:int m3;};
则T,T1,T2,T3大小
T,T1,T2应该都没问题,T3这里将 T1,T2 继承下来则
T3 <----- T1 ( m,m1) T2(m,m2)
16 + 4 = 20, 相当于 T3中m有两份
这里用虚继承
class T1:public T 变为 class T1:public virtual T
class T2:public T 变为 class T2:public virtual T则输出大小
因为T1,T2多了虚基类表指针32bit下占4个字节,则变为12
T3则正常了,m在T3中只会有一份,则为24个字节
这就是虚继承的作用,保存基类中的一份成员对象,多重继承下更加的节省空间
0 0
- C++ 类继承/虚继承/多重继承
- C++【多重继承和虚继承】
- C++-继承:多重继承 && 虚拟继承
- 多重继承与虚继承
- 多重继承与虚继承
- 多重继承与虚继承
- [转]多重继承 虚继承
- 多重继承与虚继承
- 多重继承与虚继承
- C++ 虚继承 多重继承
- 多重继承和虚继承
- 多重继承与虚继承
- C++ 多重继承 虚继承
- 多重继承和虚继承
- 多重继承与虚继承
- 多重继承 虚继承 组合
- MI/多重继承 & 虚继承
- lua 类、继承、多重继承
- 腾讯百度Offer的求职经历
- Hibernate 异常org.hibernate.LazyInitializationException: could not initialize proxy - no Session
- 2014.10.01
- [Leetcode] String to Integer (atoi)
- libevent源码深度剖析三
- C++ 类继承/虚继承/多重继承
- 海盗分宝石的求解和扩展
- libevent源码深度剖析四
- uva 12730 Skyrk's Bar 递推
- libevent源码深度剖析五
- libevent源码深度剖析六
- 我的博客频道
- libevent源码深度剖析七
- 什么是Java的永久代(PermGen)内存泄漏