继承的数据如何在派生类中放置(排列)?
How are inherited data placed (arranged) in a derived class?
我将多个变量从超类继承到基类,我希望该类将所有变量按降序打包(最大的类型在顶部,较小的类型在底部(,但由于我继承了大量数据,我不知道如何排列它们,以便最终继承的类将被紧密打包。
继承的数据是否打包到基类,或者它是随机放置的,或者在打包到最终基类之前是否对齐?
我还想知道继承是否会影响对象的"缓存友好性"。
谢谢!
继承的数据是否打包到基类中,或者它是随机放置的,还是在打包到最终基类之前对齐的?
内存中子对象的顺序不是随机的。首先声明的成员先于稍后声明的具有相同访问权限的成员。未指定不同访问说明符之间的顺序。基数在成员之前,按声明顺序排列。
不知道如何排列它们,以便最终继承的类将被紧密打包。
这本质上是包装问题的一种变体。您可以使用回溯算法找到解决方案。尽管这个问题在计算上很困难,但你应该希望不要有太多的对象来使复杂性失控。
相关文章:
- 比较并显示使用最小值(a,b)和最大值(a、b)升序排列的4个数字
- 防止主数据类型C++的隐式转换
- 用于访问容器<T>数据成员的正确 API
- 嵌套在类中时无法设置成员数据
- 为什么不;名字在地图上是按顺序排列的吗
- 使用流处理接收到的数据
- 静态数据成员的问题-修复链接错误会导致编译器错误
- 处理小于cpu数据总线的数据类型.(c++转换为机器代码)
- 在cuda线程之间共享大量常量数据
- C++将文本文件中的数据读取到结构数组中
- 矩阵行求和与 RowMajor 和 ColMajor 数据排列的奇怪性能差异
- 继承的数据如何在派生类中放置(排列)?
- 什么是存储排列的良好数据结构以及该排列发生的次数
- C++结构来定义数据的排列和访问方式
- 使用 uint8_t 或 char 来表示以字节排列的二进制数据更好吗?
- 已知格式化文件中的数据排列
- C++:如何使用冒泡排序来重新排列我的数据
- 使用 pthreads 重新排列数据包
- 数据成员的编译时重新排列
- 递归排列,Ellis Horowitz算法和数据结构混淆